0

特定のセルがクリックされたときにセル インデックスを取得できるように、テーブルのセルにリスナーを追加しています。ただし、クロムで行インデックスの値を取得できません。これは IE10 と Firefox で正常に動作します。コードは次のとおりです。

function AttachEvents() {
    var cls = document.getElementById("TableContents").getElementsByTagName("td");

    for ( var i = 0; i < cls.length; i++ ) {
        if ( cls[i].addEventListener ) {
            cls[i].addEventListener("click", alertRowCell, false);
        } else if ( cls[i].attachEvent ) {
            cls[i].attachEvent("onclick", alertRowCell);
        }
    }
}

function alertRowCell(e) {
    var cell = e.target || window.event.srcElement;
    //alert( cell.cellIndex + ' : ' + cell.parentNode.rowIndex );
    if (cell.cellIndex == 1) {
        alert(" The row index is " + cell.parentNode.rowIndex);
        highlight();
    }
}

これはChromeでどのように解決できますか?

4

1 に答える 1

3

クリックした要素は で簡単に参照できますthis

あなた場合:

function alertRowCell(evt) {
    var tr = this.parentNode;
    // do something with tr...
}

私が言っている理由は、あなたのテーブル構造が...

<tr>
    <td><span>Hello</span></td>
</tr>

... then e.targetis who isspanparentNodeありtd、 nottrです。

この例を試してください: http://jsfiddle.net/naJBq/

于 2013-10-11T07:48:26.753 に答える