1. 程式人生 > >JS獲取for迴圈中i的實時值

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);
                }
            };