關(guān)于編程挑戰(zhàn)(選項(xiàng)卡切換)
?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;是什么意思?還有第二個(gè)for語句的作用是什么?哪個(gè)大神能幫幫忙好好解釋下整個(gè)JS的流程是干嘛的?
2016-02-02
首先呢,oLi[i].index=i是咱們自己給元素定義的一個(gè)屬性,和id一樣,就是個(gè)屬性;
其次,第一個(gè)for循環(huán)意思是給所有的LI元素添加一個(gè)onclick()事件,而事件的內(nèi)容就是等號后面的匿名函數(shù)了,而匿名函數(shù)中的循環(huán)意思是取消LI標(biāo)簽的樣式,并且給div標(biāo)簽增加一個(gè)hide樣式(即隱藏),之后跳出循環(huán),然后給所點(diǎn)擊的LI標(biāo)簽增加一個(gè)on樣式,然后再給DIV標(biāo)簽指定的樣式清除
2016-02-03
是的,你也可以理解為當(dāng)前產(chǎn)生點(diǎn)擊事件的元素