HTMLTableElement : méthode insertRow()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode insertRow() de l'interface HTMLTableElement crée un élément <tr>, l'insère à la position définie dans la collection rows et le retourne. Si la collection rows est vide et que le tableau ne possède également aucun élément HTML <tbody>, un élément <tbody> est d'abord créé et inséré.
Cette méthode crée et insère l'élément directement, sans nécessiter d'appels séparés à des méthodes telles que Document.createElement(), Node.insertBefore(), et Node.appendChild().
Pour insérer explicitement une ligne dans une section spécifique, utilisez HTMLTableSectionElement.insertRow().
Syntaxe
insertRow()
insertRow(index)
Paramètres
indexFacultatif-
L'indice de la nouvelle ligne dans la collection
rows. Siindexvaut-1ou est égal au nombre de lignes, la ligne est ajoutée comme dernière ligne. Siindexest omis, sa valeur par défaut est-1.Si
rowsest vide, la nouvelle ligne est ajoutée au dernier élément<tbody>(un élément est créé s'il n'en existe pas). Sinon, la nouvelle ligne est insérée immédiatement avant la ligne àindex, ou ajoutée au parent de la dernière ligne si la nouvelle ligne doit devenir la dernière ligne. La nouvelle ligne est insérée dans le même parent que la ligne de référence, elle peut donc être insérée directement dans le<table>ou dans n'importe quel élément de section de tableau (<thead>,<tbody>ou<tfoot>).
Valeur de retour
Un objet HTMLTableRowElement qui référence la nouvelle ligne.
Exceptions
IndexSizeErrorDOMException-
Levée si
indexest supérieur au nombre de lignes ou inférieur à-1.
Exemples
Cet exemple utilise insertRow(-1) pour ajouter une nouvelle ligne à un tableau.
On utilise ensuite HTMLTableRowElement.insertCell() pour insérer une nouvelle cellule dans la nouvelle ligne. Enfin, on ajoute du texte à la cellule avec Document.createTextNode() et Node.appendChild().
HTML
<table id="mon-tableau">
<tbody>
<tr>
<td>Ligne 1</td>
</tr>
<tr>
<td>Ligne 2</td>
</tr>
<tr>
<td>Ligne 3</td>
</tr>
</tbody>
</table>
JavaScript
function addRow(tableID) {
// Récupérer une référence à la table
const tableRef = document.getElementById(tableID);
// Insérer une ligne à la fin du tableau
const newRow = tableRef.insertRow(-1);
// Insérer une cellule dans la ligne à l'indice 0
const newCell = newRow.insertCell(0);
// Ajouter un nœud texte à la cellule
const newText = document.createTextNode("Nouvelle ligne inférieure");
newCell.appendChild(newText);
}
// Appeler addRow() avec l'ID de la table
addRow("mon-tableau");
Résultat
Spécifications
| Spécification |
|---|
| HTML> # dom-table-insertrow-dev> |
Compatibilité des navigateurs
Voir aussi
- La méthode
HTMLTableRowElement.insertCell() - La méthode
HTMLTableSectionElement.insertRow()