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