我正在向表格的单元格添加监听器,以便在单击特定单元格时可以获得单元格索引。但是我无法获取 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.target
是 span
,其 parentNode
是 td
而不是 tr
.
试试这个例子: http://jsfiddle.net/naJBq/
关于javascript - ParentNode.rowIndex 在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19312461/