我有一个从数组填充的动态表。

构建表时,我在循环中包含以下内容:

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/

10-13 01:57