0

私は以下の表を持っており、以下のコードを使用してID tbl1のtrのインデックスを取得しています。問題は、返されるインデックスが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 に答える