您可以绑定到表格,但这会使您有可能在单元格之间的间距内单击(没有行或单元格索引)。在下面的示例中,我决定绑定到单元格本身,从而确保我始终拥有行和单元格索引。
var tbl = document.getElementsByTagName("table")[0];
var cls = tbl.getElementsByTagName("td");
function alertRowCell(e){
var cell = e.target || window.event.srcElement;
alert( cell.cellIndex + ' : ' + cell.parentNode.rowIndex );
}
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);
}
}
演示:http: //jsbin.com/isedel/2/edit#javascript,html
我想您也可以安全地绑定到表本身,并对源元素执行检查以查看它是否是单元格:
var tbl = document.getElementsByTagName("table")[0];
function alertRowCell (e) {
var cell = e.target || window.event.srcElement;
if ( cell.cellIndex >= 0 )
alert( cell.cellIndex + ' : ' + cell.parentNode.rowIndex );
}
if ( tbl.addEventListener ) {
tbl.addEventListener("click", alertRowCell, false);
} else if ( tbl.attachEvent ) {
tbl.attachEvent("onclick", alertRowCell);
}
演示:http: //jsbin.com/isedel/5/edit