获取table-javascript中的下一行

时间:2011-07-05 13:23:40

标签: javascript

如何获得以下示例中的下一行? (我正在尝试打印所提供的rowId的下三行/列值)

function printRowData(rowId)
{
    var row=document.getElementById(rowId);
    for(i=0; i<3 ; i++)
    {
        var column=row.getElementsByTagName("td");
        alert(column[0].innerText);

        //now i want to move to the next row...something like row=row.next()?????
     }

}

6 个答案:

答案 0 :(得分:12)

如果您只想要下一行而不是后续行,则可以执行以下操作:

var next = row.parentNode.rows[ row.rowIndex + 1 ];

所以你的代码看起来像这样:

function printRowData(rowId) {
    var row=document.getElementById(rowId);
    var idx = row.rowIndex;
    for(i=0; i<4 ; i++) {
        if( row ) {
            alert(row.cells[0].innerText);
           var row = row.parentNode.rows[ ++idx ];
        }
    }
}

从当前行获取.parentNode,然后从中获取rows集合,并递增原始行的.rowIndex属性以选择下一行。 / p>

这可以解决空白问题。

另请注意,我使用getElementsByTagName代替row.cells,而rows是行中单元格的集合。


编辑: 忘记在parentNode之后加入{{1}}媒体资源。它虽然包含在说明中。固定的。

答案 1 :(得分:1)

要解决空白问题,现在可以使用

row = row.nextElementSibling

只要确保在到达表格末尾时检查为空,或者如果您有theadtbodytfoot,那么它将在结尾处特定节点。

如果您支持旧浏览器,则可能需要使用填充程序。

答案 2 :(得分:0)

尝试使用nextSibling属性:

row = row.nextSibling

但请注意,源HTML中的空格可能会变成行中的文本节点。您可能不得不多次调用nextSibling来跳过文本节点。

你考虑过使用jQuery吗?使用jQuery,您不必担心文本节点:

row = $("#" + rowId);
...
row = row.next();

答案 3 :(得分:0)

row = row.nextSibling。您可能需要在while循环中执行此操作,因为您可能遇到空白节点,因此您应该检查下一个节点是否具有正确的tagName。

答案 4 :(得分:0)

如果你可以使用jQuery,那么它变得非常简单。

row.next();

答案 5 :(得分:-1)

使用document.getElementById(rowId).nextSibling