HTMLTableRowElement: rowIndex property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨July 2015⁩.

The rowIndex read-only property of the HTMLTableRowElement interface represents the position of a row within the whole <table>.

Even when the <thead>, <tbody>, and <tfoot> elements are out of order in the HTML, browsers render the table in the right order. Therefore the rows count from <thead> to <tbody>, from <tbody> to <tfoot>.

Value

The index of the row, or -1 if the row is not part of a table.

Examples

This example uses JavaScript to label all the row numbers in a table.

HTML

html
<table> <thead> <tr> <th>Item</th> <th>Price</th> </tr> </thead> <tbody> <tr> <td>Bananas</td> <td>$2</td> </tr> <tr> <td>Oranges</td> <td>$8</td> </tr> <tr> <td>Top Sirloin</td> <td>$20</td> </tr> </tbody> <tfoot> <tr> <td>Total</td> <td>$30</td> </tr> </tfoot> </table> 

JavaScript

js
const rows = document.querySelectorAll("tr"); rows.forEach((row) => { const z = document.createElement("td"); z.textContent = `(row #${row.rowIndex})`; row.appendChild(z); }); 

Result

Specifications

Specification
HTML
# dom-tr-rowindex-dev

Browser compatibility

See also