<head> <style> body, table { font-family: "Lucida Grande"; font-size: 10px } </style> <script> if (window.testRunner) testRunner.dumpAsText(); function labelRows() { rows = document.getElementsByTagName("tr"); for (i = 0; i < rows.length; ++i) rows[i].innerHTML += "<td>" + rows[i].id + "</td><td>rowIndex = " + rows[i].rowIndex + "</td>" } </script> </head> <body onload="labelRows()"> <p>This tests rowIndex, in particular in cases where the table sections are in different orders.</p> <p>A: This table has the header and footer before the body ("normal" order).</p> <table border=1> <thead><tr id="table A, header"></tr></thead> <tfoot><tr id="table A, footer"></tr></tfoot> <tbody><tr id="table A, body"></tr></tbody> </table> <p>B: This table has the footer before the body and both before the header.</p> <table border=1> <tfoot><tr id="table B, footer"></tr></tfoot> <tbody><tr id="table B, body"></tr></tbody> <thead><tr id="table B, header"></tr></thead> </table> <p>C: This table has two footers before two bodies before two heads.</p> <table border=1> <tfoot><tr id="table C, footer A row A"></tr><tr id="table C, footer A row B"></tr></tfoot> <tfoot><tr id="table C, footer B row A"></tr><tr id="table C, footer B row B"></tr></tfoot> <tbody><tr id="table C, body A row A"></tr><tr id="table C, body A row B"></tr></tfoot> <tbody><tr id="table C, body B row A"></tr><tr id="table C, body B row B"></tr></tfoot> <thead><tr id="table C, header A row A"></tr><tr id="table C, header A row B"></tr></tfoot> <thead><tr id="table C, header B row A"></tr><tr id="table C, header B row B"></tr></tfoot> </table> <p>D: This table has a head, foot, body, direct row children, and an extra foot.</p> <table border=1> <tfoot><tr id="table D, footer row A"></tr><tr id="table D, footer row B"></tr></tfoot> <tbody><tr id="table D, body row A"></tr><tr id="table D, body row B"></tr></tfoot> <tr id="table D, direct row A"></tr> <thead><tr id="table D, header A row A"></tr><tr id="table D, header A row B"></tr></tfoot> <tfoot><tr id="table D, footer B row A"></tr><tr id="table D, footer B row B"></tr></tfoot> </table> <script> var tr = document.createElement("tr"); tr.id = "table D, direct row B"; document.currentScript.previousElementSibling.appendChild(tr); </script> <p>E: This table only has a direct row child, added dynamically.</p> <table border=1> </table> <script> var tr = document.createElement("tr"); tr.id = "table E, direct row A"; document.currentScript.previousElementSibling.appendChild(tr); </script> </body>