關(guān)于用 lis 和用 as 的區(qū)別?
//?滑過(guò)滑過(guò)、離開、點(diǎn)擊每個(gè)選項(xiàng)時(shí) ??????//?執(zhí)行腳本 ??????for(var?i=0;i<lis.length;i++){ ??????????lis[i].onmouseover=function(){ ??????????????this.style.background='#CCC'; ??????????} ??????????lis[i].onmouseout=function(){ ??????????????this.style.background='#FFF'; ??????????} ??????????lis[i].onclick=function(event){ ??????????????menu.style.display='none'; ??????????????title.innerHTML=this.innerHTML; ??????????} ??????}
用 lis 如上執(zhí)行出來(lái)的是藍(lán)色連接樣式如圖
問(wèn)題1:其中l(wèi)is[i].onclick=function(event){
??????????????menu.style.display='none';
??????????????title.innerHTML=this.innerHTML;
??????????}部分的 this 換成lis[i] 就不行了,為什么?
問(wèn)題2:改用參考答案as[i]來(lái)執(zhí)行如下:
//?滑過(guò)滑過(guò)、離開、點(diǎn)擊每個(gè)選項(xiàng)時(shí) ??????//?執(zhí)行腳本 ??????for(var?i=0;i<as.length;i++){ ??????????as[i].onmouseover=function(){ ??????????????this.style.background='#CCC'; ??????????} ??????????as[i].onmouseout=function(){ ??????????????this.style.background='#FFF'; ??????????} ??????????as[i].onclick=function(event){ ??????????????menu.style.display='none'; ??????????????title.innerHTML=this.innerHTML; ??????????} ??????}
執(zhí)行效果:
相比用 lis 的效果,為什么會(huì)有這樣的差異呢?
2016-05-31
樓上說(shuō)的對(duì)lis包含a標(biāo)簽
當(dāng)你用as[i].onclick=function(){}時(shí) as[i]還不是個(gè)對(duì)象(java里叫類),就沒(méi)有屬性,你可以看下瀏覽器的開發(fā)者工具控制臺(tái)
顯示的應(yīng)該是undifend,如果有java或面向?qū)ο蟮幕A(chǔ)就比較好理解了。
2016-05-31
只能告訴你樣式的不同,lis[i].innerHTML中包含a標(biāo)簽,所以會(huì)出現(xiàn)上面那種情況,至于this為什么不能用對(duì)象直接替代,我找了好多資料也沒(méi)有理解,只是說(shuō)不能用這種方式創(chuàng)建function,不懂