Comment créer dynamiquement un fichier d'enregistrement de la table
Tapuscrit ne semble pas accepter la syntaxe standard pour la création d'un tableau javascript, quelle est donc la méthode la plus appropriée? J'ai été incapable de trouver de la documentation concrning tables en caractères d'imprimerie.
C'est ce que j'attends de travail:
var table = document.getElementById("myTable");
var row = table.insertRow(0);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = "NEW CELL1";
cell2.innerHTML = "NEW CELL2";
Qui est un collage direct de W3schools javascript, cependant visual studio signale une erreur au tableau.insertRow();
"Propriété" insertRow "n'existe pas sur le type "HTMLElement'"
La même erreur ocors l'aide de ce code:
class ModuleTable {
table: HTMLTableElement;
private thead: HTMLElement;
private tbody: HTMLElement;
constructor() {
this.table = document.createElement('table');
this.thead = this.table.createTHead();
this.tbody = this.table.createTBody();
var row = this.thead.insertRow(0);
var cell = row.insertCell(0);
cell.innerHTML = "Module ID";
}
}
Dois-je utiliser appendChildren avec un nouveau HTMLElement, ce qui représente une ligne à ajouter à l'en-tête?
- Il ressemble à la Machine ne dispose pas d'un HTMLTableBodyElement. Est-ce correct? ie ce casting de tbody: La volonté du pavillon des attributs comme "rangées" comme n'existant pas.
Vous devez vous connecter pour publier un commentaire.
Essayer:
La raison en est que la Machine ne permet pas de connaître le type exact de
document.getElementById()
, juste qu'il renvoie un génériqueHTMLElement
. Vous savez que c'est une table, de sorte que vous pouvez le jeter.row.insertCell()
parce que la machine sait que c'est toujours un HTMLTableRowElement. Mettre une autre manière, c'est seulementdocument.getElementById()
qui a l'ambiguïté d'un type.D'après Nikos réponse, ce code fini par résoudre le problème. Tapuscrit de la table, créé dynamicall, à partir de code seulement