Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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

js
insertRow()
insertRow(index)

Paramètres

index Facultatif

L'indice de la nouvelle ligne dans la collection rows. Si index vaut -1 ou est égal au nombre de lignes, la ligne est ajoutée comme dernière ligne. Si index est omis, sa valeur par défaut est -1.

Si rows est 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

IndexSizeError DOMException

Levée si index est 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

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

js
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