我将侦听器添加到表的单元格,以便单击特定的单元格时可以获得单元格索引。但是我无法获取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中解决此问题?

最佳答案

您可以使用this轻松引用单击的元素。

在您的情况下:

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


我说这是因为如果您的表结构是...

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


...那么e.targetspan,其parentNodetd而不是tr

请尝试以下示例:http://jsfiddle.net/naJBq/

关于javascript - parentNode.rowIndex在Chrome中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19312461/

10-11 23:27