0

我正在向表格的单元格添加侦听器,以便在单击特定单元格时可以获得单元格索引。但是我无法在 chrome 中获取行索引的值。这在 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>

...然后e.targetspanwho parentNodeistd而不是tr

试试这个例子:http: //jsfiddle.net/naJBq/

于 2013-10-11T07:48:26.753 回答