Javascript 在()上的jquery中使用for循环的索引值将给出结束索引
在.onclick函数{}中使用current for循环值时,实际使用的值是for循环的中断条件值Javascript 在()上的jquery中使用for循环的索引值将给出结束索引,javascript,jquery,Javascript,Jquery,在.onclick函数{}中使用current for循环值时,实际使用的值是for循环的中断条件值 var arr =["S","d","f"]; for(i=0;i<arr.length;i++) { $("#sng"+i).on("click",function(){ console.log(i); //is always 3 console.log(arr[i]); //is undefined as array doesnt
var arr =["S","d","f"];
for(i=0;i<arr.length;i++)
{
$("#sng"+i).on("click",function(){
console.log(i); //is always 3
console.log(arr[i]); //is undefined as array doesnt have index 3
});
如果数组有4个元素,那么console.logi始终为5等
选择器工作正常,因为这就是我使用for循环创建div并分配id=sng+i的方式。
为什么会发生这种情况,以及如何使用当前的i值
我的元素都是动态创建的。保持i为局部变量肯定是一个很好的方法:
var arr=[S,d,f];
arr.forEachv,i=>
{$sng+i.onclick,函数{
console.logi;
console.logv;
};
};
这是一个范围界定问题。无论您单击什么,我都将被读取为全局值。而是使用事件的值: var arr=[S,d,f]; 对于i=0;i