Javascript 获取表中的下一行
在下面的例子中,你是如何得到下一行的?(我正在尝试打印提供的rowId的下三行/列值)Javascript 获取表中的下一行,javascript,Javascript,在下面的例子中,你是如何得到下一行的?(我正在尝试打印提供的rowId的下三行/列值) 函数printRowData(rowId) { var row=document.getElementById(rowId); 对于(i=0;i尝试使用nextSibling属性: row = row.nextSibling 但请注意,源HTML中的空白可能会变成行中的文本节点。您可能需要多次调用nextSibling来跳过文本节点 您考虑过使用jQuery吗?使用jQuery,您不必担心文本节点: row
函数printRowData(rowId)
{
var row=document.getElementById(rowId);
对于(i=0;i尝试使用nextSibling
属性:
row = row.nextSibling
但请注意,源HTML中的空白可能会变成行中的文本节点。您可能需要多次调用nextSibling
来跳过文本节点
您考虑过使用jQuery吗?使用jQuery,您不必担心文本节点:
row = $("#" + rowId);
...
row = row.next();
row=row.nextSibling
。您可能需要在while循环中执行此操作,因为您可能会遇到空白节点,因此您应该检查下一个节点是否具有正确的标记名。如果您可以使用jQuery,那么这将变得非常简单
row.next();
使用document.getElementById(rowId).nextSibling
如果只需要下一行,而不需要后续行,可以执行以下操作:
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 ];
}
}
}
函数printRowData(rowId){
var row=document.getElementById(rowId);
var idx=row.rowIndex;
for(i=0;i来解决您现在可以使用的空白问题
row = row.nextElementSibling
当您到达表的末尾时,请确保检查null,或者如果您有一个thead
、tbody
或tfoot
它将位于该特定节点的末尾
如果您支持较旧的浏览器,您可能需要使用垫片。不确定,但这可能取决于表的编码方式。tr
s之间的空白可以解释为.nextSibling
。这将在W3C兼容的浏览器中中断。@Jaso,@patrick:这是正确的,正如我在更新的回答。我认为jQuery的next()
实现…@Ates不会有问题。我看了一下。我认为jQuery的next()
不会有问题,特别是如果使用像next('tr')这样的选择器表达式
您不需要加载整个库来选择表中的下一行。非常感谢jason…但我希望至少打印三行或更多行。其次,如果我选择“row.rowIndex+1”它正在跳过下一个直接行!!@Salman:它不会跳过下一行。
循环的目的是为了得到3行而不是一行吗?代码应该做什么?…如果你想得到给定行的第一个单元格内容,再加上两行。
row = row.nextElementSibling