課程
/前端開(kāi)發(fā)
/JavaScript
/JavaScript進(jìn)階篇
參考代碼里:oLis[i].index = i;和oDivs[this.index].className = "";是什么意思?
2015-01-22
源自:JavaScript進(jìn)階篇 10-1
正在回答
第一句:給oLis中的所有元素設(shè)置一個(gè)索引值,便于查找
第二句:設(shè)置oDivs中的this.index元素中的className為空
this.index就是你所點(diǎn)擊li元素的索引所對(duì)應(yīng)的div元素
xynicai 提問(wèn)者
thenger
a746785570 回復(fù) thenger
weibo_Saber夜斗_0
oLis[i].index?=?i;//這里的index是oLis[i]的自定義屬性,用來(lái)保存該元素在原數(shù)組中的下標(biāo)
引自火火慕
你不加的話沒(méi)辦法獲取數(shù)組元素的角標(biāo)啊,可能是因?yàn)閿?shù)組中沒(méi)有一個(gè)源屬性比如index,你編寫?數(shù)組元素.index就自動(dòng)獲得元素角標(biāo)。
這樣是不是可以解釋得通了?
樓上講解很詳細(xì),謝謝!
上面說(shuō)得很詳細(xì)了,原本就不明白,數(shù)組后面咋整了個(gè)index屬性,看其他同學(xué)筆記,說(shuō)“oLis[0].index = i 是自定義 index”,為以后的操作做準(zhǔn)備,實(shí)現(xiàn)功能樓上說(shuō)得很詳細(xì)了。若是如此解釋的話,后面就懂了
? 因?yàn)轫?yè)面一旦加載完成就觸發(fā)onload事件,而onclick事件觸發(fā)之前,for(var i= 0,len = oLis.length;i<len;i++)這個(gè)循環(huán)已經(jīng)運(yùn)行完成了!oLis[i].onclick = function()這段代碼只是掛在那里(掛這個(gè)詞不怎么準(zhǔn)確,意思放在那里,等待onclick事件觸發(fā)),這時(shí)候的i=3.在oLis[i].onclick = function()之前document.writeln(i)你會(huì)發(fā)現(xiàn)輸出012,說(shuō)明循環(huán)已經(jīng)完成.?? oLis[i].index = i 的作用只是在循環(huán)的過(guò)程中綁定下標(biāo)i(0 1 2)到oLis數(shù)組相應(yīng)元素oLis[0] oLis[1] oLis[2]的index變量上(例如oLis[0].index = 0;oLis[1].index =1;oLis[2].index=2)
?? 當(dāng)onclick事件觸發(fā)的時(shí)候,this.className中的this就是當(dāng)前鼠標(biāo)所在的元素(例如家居), 同時(shí)oDivs[this.index]會(huì)獲取到家居所對(duì)應(yīng)的oLis數(shù)組中的index值(這里是1,因?yàn)槲覀円呀?jīng)在完成的循環(huán)中將oLis[1]=1 了),而如果換成oLis[i]則因?yàn)閕===3(恒等于3),所以oLis[i]===oLis[3],當(dāng)然會(huì)出錯(cuò)了!建議好好看一下JS的閉包原理和事件機(jī)制!
JJLoveJJ
小雨君
慕無(wú)忌7023775
Htttttt
慕粉18764815087 回復(fù) 慕無(wú)忌7023775
qq_秋_楓__0
Younson_24
把i的值儲(chǔ)存到index中,在oDivs[this.index].className = "";這句中this.index的值是當(dāng)前鼠標(biāo)所在的元素,oLis[i].index = i;的意義是可以讓this.index獲取任意一個(gè)index值
舉報(bào)
本課程從如何插入JS代碼開(kāi)始,帶您進(jìn)入網(wǎng)頁(yè)動(dòng)態(tài)交互世界
3 回答oLis[i].index = i;
1 回答oLis[i].index = i;
1 回答window.onload,oLis[i].index=i,oDivs[this.index]
4 回答oLis[i].index = i;這行代碼什么用?
4 回答關(guān)于oLis[i].index = i;和oDivs[this.index].className = "";
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-01-22
第一句:給oLis中的所有元素設(shè)置一個(gè)索引值,便于查找
第二句:設(shè)置oDivs中的this.index元素中的className為空
this.index就是你所點(diǎn)擊li元素的索引所對(duì)應(yīng)的div元素
2016-06-03
引自火火慕
你不加的話沒(méi)辦法獲取數(shù)組元素的角標(biāo)啊,可能是因?yàn)閿?shù)組中沒(méi)有一個(gè)源屬性比如index,你編寫?
數(shù)組元素.index
就自動(dòng)獲得元素角標(biāo)。
這樣是不是可以解釋得通了?
2016-04-28
樓上講解很詳細(xì),謝謝!
2015-07-02
上面說(shuō)得很詳細(xì)了,原本就不明白,數(shù)組后面咋整了個(gè)index屬性,看其他同學(xué)筆記,說(shuō)“oLis[0].index = i 是自定義 index”,為以后的操作做準(zhǔn)備,實(shí)現(xiàn)功能樓上說(shuō)得很詳細(xì)了。若是如此解釋的話,后面就懂了
2015-03-20
? 因?yàn)轫?yè)面一旦加載完成就觸發(fā)onload事件,而onclick事件觸發(fā)之前,for(var i= 0,len = oLis.length;i<len;i++)這個(gè)循環(huán)已經(jīng)運(yùn)行完成了!oLis[i].onclick = function()這段代碼只是掛在那里(掛這個(gè)詞不怎么準(zhǔn)確,意思放在那里,等待onclick事件觸發(fā)),這時(shí)候的i=3.在oLis[i].onclick = function()之前document.writeln(i)你會(huì)發(fā)現(xiàn)輸出012,說(shuō)明循環(huán)已經(jīng)完成.
?? oLis[i].index = i 的作用只是在循環(huán)的過(guò)程中綁定下標(biāo)i(0 1 2)到oLis數(shù)組相應(yīng)元素oLis[0] oLis[1] oLis[2]的index變量上(例如oLis[0].index = 0;oLis[1].index =1;oLis[2].index=2)
?? 當(dāng)onclick事件觸發(fā)的時(shí)候,this.className中的this就是當(dāng)前鼠標(biāo)所在的元素(例如家居), 同時(shí)oDivs[this.index]會(huì)獲取到家居所對(duì)應(yīng)的oLis數(shù)組中的index值(這里是1,因?yàn)槲覀円呀?jīng)在完成的循環(huán)中將oLis[1]=1 了),而如果換成oLis[i]則因?yàn)閕===3(恒等于3),所以oLis[i]===oLis[3],當(dāng)然會(huì)出錯(cuò)了!建議好好看一下JS的閉包原理和事件機(jī)制!
2015-03-11
把i的值儲(chǔ)存到index中,在oDivs[this.index].className = "";這句中this.index的值是當(dāng)前鼠標(biāo)所在的元素,oLis[i].index = i;的意義是可以讓this.index獲取任意一個(gè)index值