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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于第10章編程挑戰(zhàn)參考代碼中的問題

下面這段:

window.onload = function(){

? ? ? ? ? ? ?var oTab = document.getElementById("tabs");

? ? ? ? ? ? ?var oUl = oTab.getElementsByTagName("ul")[0];

? ? ? ? ? ? ?var oLis = oUl.getElementsByTagName("li");

? ? ? ? ? ? ?var oDivs= oTab.getElementsByTagName("div");

? ? ? ? ? ? ?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 = "";

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ?}

? ? ? ? ?}

最后部分: ? this.className="on";

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

為什么不能把this.className換成oLis[i].className?難道不是一樣的效果嗎?(我已經(jīng)測(cè)試過換了之后會(huì)出錯(cuò))

同樣的為什么不能把oDivs.[this.index]換成oDivs.[i].className呢?

正在回答

1 回答

我的理解是在oLis[i]的onclick方法在被調(diào)用時(shí)已經(jīng)不在變量i的作用域中了。

變量i位于window.onload中的for循環(huán)里,你說的那兩個(gè)語句在for循環(huán)中被定義成函數(shù)綁定給了onclick,但這時(shí)onclick沒有被調(diào)用。而在onclick在被調(diào)用時(shí)for循環(huán)所處的window.onload已經(jīng)執(zhí)行結(jié)束了。

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

__呵呵噠_ 提問者

我又想了一下,差不多知道為什么不能這樣了,貌似和你的思路差不多。因?yàn)樵趂or循環(huán)執(zhí)行完之后,i的值便不會(huì)變化了,此時(shí)i==2,在onclick調(diào)用之后這樣的結(jié)果就變成一直都是顯示oLis[2]和oDivs[2],感覺this真是功能強(qiáng)大?。?/div>
2016-10-01 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

關(guān)于第10章編程挑戰(zhàn)參考代碼中的問題

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

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

幫助反饋 APP下載

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

公眾號(hào)

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