for循环里变量作用域

for(var i in data){

$('#test'+i).on('change',function(){

        console.log(i);

    })

}

每个元素触发事件都会显示最后一个data里的i,数组就是data.length-1
感觉是闭包相关的问题,请问该如何修改
PS:let的写法我知道 但是浏览器不兼容没法用

慕丝7291255
浏览 457回答 1
1回答

慕姐8265434

你可以试一试看看可以解决你的问题;for(var i in data){(function(i){$('#test'+i).on('change',function(){    console.log(i);})})(i);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript