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

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

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

?window.onload=function(){
????????var?tabs=document.getElementById("tabs");
????????var?divs=tabs.getElementsByTagName("div");
????????//tabs.get。。。是為了獲取id為tabs下的所有標簽div的節點
????????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設置on,div顯示
????????????????this.className?=?"on";
????????????????divs[this.index].className?=?"";
????????????}

????????}

????}

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

正在回答

5 回答

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

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

劉毅毅

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

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

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

劉毅毅

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

NadiaSmile 回復 劉毅毅

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

劉毅毅 回復 NadiaSmile

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

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

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

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

就是為了保存i的值

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

不知道....

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

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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