如何获得以下示例中的下一行? (我正在尝试打印所提供的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()?????
}
}
答案 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
只要确保在到达表格末尾时检查为空,或者如果您有thead
,tbody
或tfoot
,那么它将在结尾处特定节点。
如果您支持旧浏览器,则可能需要使用填充程序。
答案 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