3 回答

TA貢獻1155條經驗 獲得超0個贊
這樣的事情。
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);
}
}

TA貢獻1848條經驗 獲得超10個贊
我認為對于IE,您將需要使用Event對象的srcElement屬性。如果jQuery是您的選擇,則可能要考慮使用它-因為它會為您抽象出大多數瀏覽器差異。jQuery示例:
$("#tableId tr").click(function() {
alert($(this).children("td").html());
});

TA貢獻1794條經驗 獲得超8個贊
這是@redsquare和@SolutionYogi上面討論的同一純Javascript(不是jQuery)解決方案的緊湊且更簡潔的版本,該解決方案onclick在所有主要的Web瀏覽器中都可以使用,其中包括:最新的IE11:
function addRowHandlers() {
var rows = document.getElementById("tableId").rows;
for (i = 0; i < rows.length; i++) {
rows[i].onclick = function(){ return function(){
var id = this.cells[0].innerHTML;
alert("id:" + id);
};}(rows[i]);
}
}
window.onload = addRowHandlers();
注意:為了使其也能在IE8中工作,請this使用function(myrow)@redsquare所建議的顯式標識符代替指針。最好的祝福,
添加回答
舉報