我有一个从数组填充的动态表。
在构建表时,我在一个循环中有以下内容:
var tdRecord = trRecord.insertCell(trRow.cells.length);
var tdRecordId = dataArray[j][0];
tdRecord.onclick = function() { alert(tdRecordId); }
问题是 alert 只会提醒数组中最后设置的 tdRecordId。如果我点击任何其他 td 行,它们都会提示相同的数字。
有人知道我该如何解决这个问题吗?
最佳答案
这应该有效:
(function( id ) {
tdRecord.onclick = function() {
alert( id );
};
}( tdRecordID ));
您似乎在循环内运行您的代码。在这种情况下,所有点击处理程序都将指向相同的 tdRecordId
值。如果你想捕获当前迭代的值,你必须使用一个函数包装器来为你做这件事。
关于javascript - 基本的 onclick 事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135674/