Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用循环的最后一次迭代而不是当前迭代在循环中单击函数_Javascript_Arrays_For Loop - Fatal编程技术网

Javascript 使用循环的最后一次迭代而不是当前迭代在循环中单击函数

Javascript 使用循环的最后一次迭代而不是当前迭代在循环中单击函数,javascript,arrays,for-loop,Javascript,Arrays,For Loop,它应该循环遍历数组组件,并根据当前循环迭代每次放置不同的参数,但它一直使用循环的最后一次迭代 for (let i = 0; i < products.length; i++) { var x = document.createElement("div"); document.querySelector(".item").style.display = "none"; x.innerHTML = document.querySel

它应该循环遍历数组组件,并根据当前循环迭代每次放置不同的参数,但它一直使用循环的最后一次迭代

for (let i = 0; i < products.length; i++) {
var x = document.createElement("div");
document.querySelector(".item").style.display = "none";
x.innerHTML = document.querySelector(".item").innerHTML;
x.className = "item";
x.id = products[i][5];
x = document.querySelector(".resultitems").appendChild(x);
document 
  .getElementById(products[i][5])
  .getElementsByTagName("a")[0].onclick = productNum(products[i][5]);
for(设i=0;i
整个循环太长,无法发布,但是看到onclick函数,它每次都会放入最后一次迭代
任何帮助都将非常感谢

productNum
返回函数,还是应该在单击时执行
productNum
本身?因为现在执行
productNum
,其返回值被分配给onclick事件。它使用基于参数的switch语句设置局部变量将
productNum(products[i][5])
更改为
()=>productNum(products[i][5]);
修复它。非常感谢Ivar,我在最后一个小时内一直在尝试修复它