将onclick事件添加到表行

我试图通过Javascript向表行添加onclick事件。

function addRowHandlers() {

var table = document.getElementById("tableId");

var rows = table.getElementsByTagName("tr");

for (i = 1; i < rows.length; i++) {

row = table.rows[i];

row.onclick = function(){

var cell = this.getElementsByTagName("td")[0];

var id = cell.innerHTML;

alert("id:" + id);

};

}

}

这在Firefox中可以正常工作,但是在Internet Explorer(IE8)中,我无法访问表格单元。我认为这与onclick函数中的“

this”被标识为“ Window”而不是“ Table”(或类似的东西)有关。

如果我可以访问当前行,则可以getElementById在onclick函数中执行,因为我找不到这样做的方法。有什么建议么?

回答:

这样的事情。

function addRowHandlers() {

var table = document.getElementById("tableId");

var rows = table.getElementsByTagName("tr");

for (i = 0; i < rows.length; i++) {

var currentRow = table.rows[i];

var createClickHandler = function(row) {

return function() {

var cell = row.getElementsByTagName("td")[0];

var id = cell.innerHTML;

alert("id:" + id);

};

};

currentRow.onclick = createClickHandler(currentRow);

}

}

工作演示。

以上是 将onclick事件添加到表行 的全部内容, 来源链接: utcz.com/qa/398885.html

回到顶部