亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

大神大神,求助大神

for(var i= 0,len = oLis.length;i<len;i++){ ? ?

oLis[i].index = i; ? ?

oLis[i].onclick = function() { ? ?

for(var n= 0;n<len;n++){ ? ?

oLis[n].className = ""; ? ?

oDivs[n].className = "hide"; ? ?

} ? ?

this.className = "on"; ? ?

oDivs[this.index].className = ""; ? ?

}? ? ?

能給我解釋一下這個代碼嗎?,看得不是很明白啊

正在回答

3 回答

主要還是oLis[i].index = i這句吧?

這里for循環內部有個click事件,如果不去保存i值,那么在頁面加載時會先加載for循環,這時click事件并沒有觸發,因此加載好for循環后,i值已經為oLis.length,這時如果觸發click事件,i值就是定值(為oLis.length),但如果提前在頁面加載循環時將每一個i值保存在每一個oLis的index屬性上,那么在click事件內部,再去調用當前事件的index屬性,就是在頁面加載是保存下來對應的i值了


1 回復 有任何疑惑可以回復我~

好,明白了,謝謝哈,你這么一說我就想通了,哈哈

0 回復 有任何疑惑可以回復我~

for(var n= 0;n<len;n++){ ? ?

oLis[n].className = ""; ? ?

oDivs[n].className = "hide"; ? ?

} ? ?

this.className = "on"; ? ?

oDivs[this.index].className = ""; ? ?

} ? ??

我不明白為啥?

oLis[n].className = ""; ? ?oDivs[n].className = "hide"; 這兩句,前面設置為空是什么意思,能講下嗎


0 回復 有任何疑惑可以回復我~
#1

stone310

就是將每一個oLis的class清空啊,然后后面this.className = "on"; 就是把當前oLis的class設置為on; 另外一個同樣道理,先將所有oDivs的class設置為hide,再將當前oDivs的class設置為空
2016-12-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468966    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

大神大神,求助大神

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號