0

我有下表,我正在使用下面的代码来获取带有 id tbl1 的 tr 的索引。问题是返回的索引应该是 2 在 IE 中是正确的,但它在 chrome 中是 3和firefox。有人可以告诉我我在这里做错了什么。

var parent = document.getElementById("tbl1").parentElement;
    var tr = document.getElementById("tbl1");
    var index = -1;
    for (var i = 0; i < parent.childNodes.length; i++) {
        if (parent.childNodes.item(i) == tr) {
            index = ++i;
            break;
        }
    }

<TABLE border=0 cellSpacing=0 cellPadding=0><TBODY>
<TR>
</TR>
<TR id="tbl1">
</TR>
<TR></TR>
</TBODY></TABLE>
4

2 回答 2

2

如何使用rowIndex

var tr = document.getElementById("tbl1"),
    index = tr.rowIndex + 1;

console.log(index);  // => 2

看演示

于 2012-12-14T22:40:53.697 回答
1

我知道你没有要求使用 jQuery 的解决方案,无论如何:

$('#tbl1').index()+1

也给你2。

它适用于任何类型的节点,不仅是 TR。

于 2012-12-14T23:11:13.267 回答