js中經常會遇到一個問題:需要循環異步函數,我們經常會這樣寫:
for(var i=0;i<10;i++){
setTimeout(function(){
console,log("輸出i的值:”+i)
},1000)
}
本以為會輸出:
輸出i的值:0
輸出i的值:1
輸出i的值:2
輸出i的值:3
......
然而事情並不是這樣,結果卻是:
輸出i的值:9
輸出i的值:9
輸出i的值:9
......
不要急,正確的寫法是:
for(var i=0;i<10;i++){
(function(i){
setTimeout(function(){
console,log("輸出i的值:”+i)
},1000)
})(i)
}
jq的話用$.each遍歷就好了。