第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

不懂為什么要用this

在for循環(huán)中,為什么要把i值賦給oLis[i].index,然后通過this來修改className,直接用oLis[i].className="on";oDivs[i].className="";為什么不對??

正在回答

2 回答

oLis[i].onclick = function()看到這句話沒,這句話的意思是給oLis中的所有元素增加點(diǎn)擊事件,而在事件中this就代表的這個元素

另外oLis是li元素的集合,所以在遍歷的時候需要取單個元素

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

yanyt 提問者

非常感謝!
2015-01-04 回復(fù) 有任何疑惑可以回復(fù)我~

? 因?yàn)轫撁嬉坏┘虞d完成就觸發(fā)onload事件,而onclick事件觸發(fā)之前,for(var i= 0,len = oLis.length;i<len;i++)這個循環(huán)已經(jīng)運(yùn)行完成了!oLis[i].onclick = function()這段代碼只是掛在那里(掛這個詞不怎么準(zhǔn)確,意思放在那里,等待onclick事件觸發(fā)),這時候的i=3.在 oLis[i].onclick = function()之前document.writeln(i)你會發(fā)現(xiàn)輸出012,說明循環(huán)已經(jīng)完成.
?? oLis[i].index = i 的作用只是在循環(huán)的過程中綁定下標(biāo)i(0 1 2)到oLis數(shù)組相應(yīng)元素oLis[0] oLis[1] oLis[2]的index變量上(例如oLis[0].index = 0;oLis[1].index =1;oLis[2].index=2)

?? 當(dāng)onclick事件觸發(fā)的時候,this.className中的this就是當(dāng)前鼠標(biāo)所在的元素(例如家居), 同時oDivs[this.index]會獲取到家居所對應(yīng)的oLis數(shù)組中的index值(這里是1,因?yàn)槲覀円呀?jīng)在完成的循環(huán)中將oLis[1]=1 了),而如果換成oLis[i]則因?yàn)閕===3(恒等于3),所以oLis[i]===oLis[3],當(dāng)然會出錯了!建議好好看一下JS的閉包原理和事件機(jī)制!


4 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

不懂為什么要用this

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號