GavinZeng
2016-10-12 11:17:19
for?(var?i?=?0;?i?<?$(".testP2").length;?i++)?{
???????$('.testP2').eq(i).addClass('test'+i);
}遍歷類名為“.testP2”的元素,添加不同樣式問題:為什么該代碼無效?
5 回答

堂堂堂堂糖糖糖童鞋
TA貢獻(xiàn)101條經(jīng)驗(yàn) 獲得超58個(gè)贊
這是一個(gè)全局變量i最后的值的問題(作用域問題)。
遍歷之后,i的值為$(".testP2").length,那在通過$('.testP2').eq(i)就無法取得對(duì)應(yīng)的元素,因?yàn)椴淮嬖?('.testP2').eq($(".testP2").length)的元素。
解決方式有兩種:
for?(let?i?=?0;?i?<?$(".testP2").length;?i++)?{//ES6塊級(jí)作用域聲明let,兼容性不好 ???????$('.testP2').eq(i).addClass('test'+i); }
for?(var?i?=?0;?i?<?$(".testP2").length;?i++)?{//閉包 ???????(function(i){ ???????????$('.testP2').eq(i).addClass('test'+i); ???????}(i)) }

qq_慕沐3137801
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
$(".testP2").each(function(index){
????this.assClass("test"+index)
})
添加回答
舉報(bào)
0/150
提交
取消