gpt4 book ai didi

javascript - 在 javascript 循环中添加 .onclick 监听器

转载 作者:行者123 更新时间:2023-11-28 00:18:54 25 4
gpt4 key购买 nike

我有一个页面通过 AJAX 获取 JSON 数据。我已成功解析数据并从中创建表行。我现在尝试添加 .onclick使用以下代码监听这些行:

function addResultsRows(tbody, jsonResults) {
for (var i in jsonResults) {
var tableRow = tbody.insertRow(0);
var currRow = jsonResults[i];
tableRow.onclick = (function () {
window.location = '/otherscript?cusnum=' + currRow['cusnum'];
});
var currCell = tableRow.insertCell(0);
currCell.innerHTML = currRow['cusnum'];
}
}

等等

我遇到的问题是所有行都以使用 currRow['cusnum'] 的监听器函数结束。添加到表中的最后一行的值。

JavaScript 不是(也不太可能永远是)我的强项 - 只是这样做是因为没有其他人可以做前端代码。问题是否与在循环中使用匿名函数有关?

最佳答案

可能是这样的变化

function addResultsRows(tbody, jsonResults) {
for (var i in jsonResults) {
(function (i) {
var tableRow = tbody.insertRow(0);
var currRow = jsonResults[i];
tableRow.onclick = (function() { window.location = '/otherscript?cusnum=' + currRow['cusnum'] });
var currCell = tableRow.insertCell(0);
currCell.innerHTML = currRow['cusnum'];
})(i);
}
}

可以。

在您的脚本中,i 保留循环中最后一次迭代的值,并且对于所有事件处理程序都相同。

关于javascript - 在 javascript 循环中添加 .onclick 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30207668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com