javascript - ParentNode.rowIndex 在 Chrome 中不起作用

标签 javascript

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

相关文章:

javascript - d3.js/svg - 如何动态地将文本附加到我的弧线

javascript - 每个标记有多个类别选项在传单 map 中使用 GeoJSON

javascript - 根据for循环的输出更改div颜色

javascript - 在 jQuery UI 中堆叠 ListView

javascript - 通过 Node.js 更改本地网络名称

javascript - 如何正确克隆 JavaScript 对象?

javascript - Canvas 自动调整为 50x50

php - session 不适用于 AJAX

javascript - 将多层 PHP 数组转换为 Javascript 对象表示法

javascript - 如何获取输入文件的文件名并在单击按钮时再次显示它而不上传它?