JS获取for循环中i的实时值

最近在完成灯箱效果时,需要获取for循环中i的实时值来定位大图轮播的索引,但最初获得的是i的最大值

几种获取for循环中i的实时值方法:

自调:

for (var i = 0; i < itemli.length; i++) {
    (function (arg) {
        itemli[arg].onclick = function () {
            console.log(arg);
        }
    })(i);
};

闭包:

for (var i = 0 ; i < itemli.length ; i++) {
    itemli[i].onclick = function (arg) {
        return function () {
            console.log(arg);
        }
    }(i);
};
let代替var: 每次执行都是一个全新的独立的块作用域,用let声明的变量传入到 for循环体的作用域后,不会发生改变,不受外界的影响。
for (let i = 0; i < itemli.length; i++) {
                itemli[i].onclick = function () {
                    console.log(i);
                }
            };

猜你喜欢

转载自blog.csdn.net/sunny123x/article/details/80846469