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

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

應(yīng)該怎么理解lis[i].index=i比價好,囧我理解是為了傳給 onclick中的divs中的i

?window.onload=function(){
????????var?tabs=document.getElementById("tabs");
????????var?divs=tabs.getElementsByTagName("div");
????????//tabs.get。。。是為了獲取id為tabs下的所有標(biāo)簽div的節(jié)點
????????var?lis=document.getElementsByTagName("li");
????????for(var?i=0;i<lis.length;i++){
????????????lis[i].index=i;
????????????lis[i].onclick=function(){
????????????????for(var?n=0;n<lis.length;n++){//先給所有的選項的li都取消on,div都隱藏
????????????????????lis[n].className?=?"";
????????????????????divs[n].className?=?"hide";
????????????????}//再給點擊的那個選項li設(shè)置on,div顯示
????????????????this.className?=?"on";
????????????????divs[this.index].className?=?"";
????????????}

????????}

????}

如果直接用divs[i]的話是瀏覽器是無法識別的,所以先用lis[i].index=i,把i傳遞過去,再在divs[this.index]中。不知道我這樣理解對不對,有沒有更好的解釋

正在回答

5 回答

通過for循環(huán)遍歷給lis的每個子元素添加點擊事件,當(dāng)某個li觸發(fā)事件我們希望通過下標(biāo)定位到對應(yīng)的div并對其操作,但是在這之前,i會被系統(tǒng)回收(垃圾回收機(jī)制)。我們可以吧每個li看做一個對象,自定義一個index屬性(可以隨便取名字a,b,隨便啦)通過for循環(huán),給lis的每個子元素(li)的index屬性賦予期下標(biāo)值,當(dāng)li觸發(fā)事件,this指向了當(dāng)前觸發(fā)事件的li,通過他的index屬性取到它的下標(biāo)值,這樣div[this.index]就是當(dāng)前l(fā)i對應(yīng)的div了(實現(xiàn)了點擊li與對應(yīng)的div能做出響應(yīng))

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

劉毅毅

請問這種回收出現(xiàn)在什么時候呢?for下面的控制語句和函數(shù)都會嗎?
2016-11-13 回復(fù) 有任何疑惑可以回復(fù)我~

用divs[i]來代替divs[this.index]無法實現(xiàn)效果,不是因為divs[i]無法識別,而是i不固定,i是從0~lis.length-1,如果直接用divs[i]來做的話那無論點哪個標(biāo)題都會顯示最后一個的內(nèi)容,因為會循環(huán)到最后,divs[lis.length-1].className=""; 而讓lis[i].index=i,這樣每個li都有自己的編號,在lis[i].onclick=function()中,this就是當(dāng)前點擊的li,根據(jù)當(dāng)前點擊的li的index,可以確定展現(xiàn)哪個div

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

劉毅毅

請問為什么會循環(huán)到最后?不是onclick才觸發(fā)函數(shù)么
2016-11-13 回復(fù) 有任何疑惑可以回復(fù)我~
#2

NadiaSmile 回復(fù) 劉毅毅

但是onclick是在外層for循環(huán)里面,外層的循環(huán)會一直走到最大的一個i,所以如果有4個li,回事i=3 無論點那個li,都是展示最后一個div
2016-11-14 回復(fù) 有任何疑惑可以回復(fù)我~
#3

劉毅毅 回復(fù) NadiaSmile

哦對。幾個大括號沒弄清
2016-11-15 回復(fù) 有任何疑惑可以回復(fù)我~

二樓正解,我原來是做iOS的,一開始看也不明白,只知道把這行注了就沒效果了,后來才知道只是為了給該屬性綁定值,lis[i]有index的屬性,但是這個屬性沒有值。需要讓lis[i].index=i;其實這里把index改成id也可以。只是為了給lis[i]一個值,lis[i]有值之后才可以確定點的是哪個li

還有不理解的盡情追問,如果明白了請采納我的答案哦? 謝謝~~

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

就是為了保存i的值

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

不知道....

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

舉報

0/150
提交
取消

應(yīng)該怎么理解lis[i].index=i比價好,囧我理解是為了傳給 onclick中的divs中的i

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

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

幫助反饋 APP下載

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

公眾號

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