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

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

關于編程挑戰(選項卡切換)

?window.onload = function(){

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

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

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

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

? ? ?

? ? ?for(var i=0; i<oLi.length;i++){

? ? ? ? ?oLi[i].index = i;

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

? ? ? ? ? ? ?for(var n=0;n<oLi.length;n++){

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

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

? ? ? ? ? ? ?}

? ? ? ? ? ? ?this.className = "on";

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

? ? ? ? ?}

? ? ?};

}

這一串JS代碼中,for語句里面的?oLi[i].index = i;是什么意思?還有第二個for語句的作用是什么?哪個大神能幫幫忙好好解釋下整個JS的流程是干嘛的?

正在回答

2 回答

首先呢,oLi[i].index=i是咱們自己給元素定義的一個屬性,和id一樣,就是個屬性;

其次,第一個for循環意思是給所有的LI元素添加一個onclick()事件,而事件的內容就是等號后面的匿名函數了,而匿名函數中的循環意思是取消LI標簽的樣式,并且給div標簽增加一個hide樣式(即隱藏),之后跳出循環,然后給所點擊的LI標簽增加一個on樣式,然后再給DIV標簽指定的樣式清除

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

異想天開的懶蟲 提問者

oDiv[this.index].className = "";這句里面的this是引用oLi[i]嗎?
2016-02-02 回復 有任何疑惑可以回復我~

是的,你也可以理解為當前產生點擊事件的元素

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

舉報

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

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

進入課程

關于編程挑戰(選項卡切換)

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

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

幫助反饋 APP下載

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

公眾號

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