获取表JavaScript中的下一行

get the next row in a table-javascript

本文关键字:一行 JavaScript 获取      更新时间:2023-09-26

下面的示例中,wud u 如何获得下一行?(我正在尝试打印提供的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()?????
     }
}

如果您只想要下一行,而不是后续行,则可以这样做:

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 属性以选择下一行。

这可以解决空白问题。

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


编辑:忘记在parentNode后包含rows属性。不过,它包含在描述中。固定。

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

row = row.nextElementSibling

只需确保在到达表的末尾时检查 null,或者如果您有 theadtbodytfoot它将位于该特定节点的末尾。

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

尝试使用 nextSibling 属性:

row = row.nextSibling

但请注意,源 HTML 中的空格可能会变成行之间的文本节点。您可能需要多次调用nextSibling才能跳过文本节点。

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

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

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

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

row.next();

使用 document.getElementById(rowId).nextSibling