aLi[i].index = i;。。。求破十萬火急
?aLi[i].index = i;
aDiv[this.index].className = "";
這兩句求破。。
http://www.xianlaiwan.cn/qadetail/63838
在這里提到第一句使用index是讓了個ali添加索引值,使其便于查找。
但ali本身不是一個數組嘛?自帶了數組下標呀,為啥需要index。
?aLi[i].index = i;
aDiv[this.index].className = "";
這兩句求破。。
http://www.xianlaiwan.cn/qadetail/63838
在這里提到第一句使用index是讓了個ali添加索引值,使其便于查找。
但ali本身不是一個數組嘛?自帶了數組下標呀,為啥需要index。
2015-03-08
舉報
2015-03-20
回復 我只是我:因為頁面一旦加載完成就觸發onload事件,而onclick事件觸發之前,for(var i= 0,len = oLis.length;i<len;i++)這個循環已經運行完成了!oLis[i].onclick = function()這段代碼只是掛在那里(掛這個詞不怎么準確,意思放在那里,等待onclick事件觸發),這時候的i=3.在oLis[i].onclick = function()之前document.writeln(i)你會發現輸出012,說明循環已經完成.
oLis[i].index = i 的作用只是在循環的過程中綁定下標i(0 1 2)到oLis數組相應元素oLis[0] oLis[1] oLis[2]的index變量上(例如oLis[0].index = 0;oLis[1] =1;oLis[2]=2),
當onclick事件觸發的時候,this.className中的this就是當前鼠標所在的元素(例如家居), 同時oDivs[this.index]會獲取到家居所對應的oLis數組中的index值(這里是1,因為我們已經在完成的循環中將oLis[1]=1了),而如果換成oLis[i]則因為i永遠=3,所以oLis[i]===oLis[3],當然會出錯了!建議好好看一下JS的閉包原理和事件機制
2015-03-11
把i的值儲存到index中,在oDivs[this.index].className = "";這句中this.index的值是當前鼠標所在的元素,oLis[i].index = i;的意義是可以讓this.index獲取任意一個index值
2015-03-09
他是個數組吧~~