javascript-基本onclick事件问题

javascript-基本onclick事件问题,javascript,Javascript,我有一个从数组填充的动态表 在构建表时,我在循环中有以下内容: var tdRecord = trRecord.insertCell(trRow.cells.length); var tdRecordId = dataArray[j][0]; tdRecord.onclick = function() { alert(tdRecordId); } 问题是,警报只会警报阵列中最后一组tdRecordId。如果我点击任何其他td行,它们都会发出相同的警报 有人知道我如何解决这个问题吗?您可以使用j

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

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

var tdRecord = trRecord.insertCell(trRow.cells.length);
var tdRecordId = dataArray[j][0];
tdRecord.onclick = function() { alert(tdRecordId); }
问题是,警报只会警报阵列中最后一组tdRecordId。如果我点击任何其他td行,它们都会发出相同的警报


有人知道我如何解决这个问题吗?

您可以使用jQuery的数据功能:

tdRecord.onclick = function () { alert('123'); };

您可以使用jQuery的数据功能:

将其设置为文字,而不是动态:

在您所做的操作中,它总是引用变量,而不是当前值

因此,随着变量的变化,函数警报将发生变化

在这种情况下,它实际上插入的是值,而不是变量本身,因此它将保持不变而不是更改

将其设置为文字,而不是动态:

在您所做的操作中,它总是引用变量,而不是当前值

因此,随着变量的变化,函数警报将发生变化

在这种情况下,它实际上插入的是值,而不是变量本身,因此它将保持不变而不是更改。

这应该可以:

(function( id ) {

    tdRecord.onclick = function() {
        alert( id );
    };

}( tdRecordID ));
您似乎正在循环中运行代码。在这种情况下,所有单击处理程序都将指向相同的tdRecordId值。如果您想捕获当前迭代的值,则必须使用函数包装器来完成此操作。

这应该可以:

(function( id ) {

    tdRecord.onclick = function() {
        alert( id );
    };

}( tdRecordID ));

您似乎正在循环中运行代码。在这种情况下,所有单击处理程序都将指向相同的tdRecordId值。如果您想捕获当前迭代的值,您必须使用一个函数包装器,它将为您捕获值。

请展开,不清楚您试图做什么。字符串来自哪里?它与表格单元格的关系如何?请展开,不清楚您试图做什么。字符串来自哪里?它和表格单元格有什么关系?我想他想通过这个论证。没有在函数块中指定。我想他想传递那个参数。不在函数块中指定。您不想立即调用函数。您不想立即调用函数。
(function( id ) {

    tdRecord.onclick = function() {
        alert( id );
    };

}( tdRecordID ));