為什么我這么寫不對,this在這里什么意思
?for(var i= 0,len = oLis.length;i<len;i++){
? ? ? ? ? ? ? ? ?oLis[i].index = i;
? ? ? ? ? ? ? ? ?oLis[i].onclick = function() {
? ? ? ? ? ? ? ? ? ? ?for(var n= 0;n<len;n++){
? ? ? ? ? ? ? ? ? ? ? ? ?oLis[n].className = "";
? ? ? ? ? ? ? ? ? ? ? ? ?oDivs[n].className = "hide";
? ? ? ? ? ? ? ? ? ? ?}
oLis[i].className="on";
oDivs[i].className="";
? ? ? ? ? ? ? ? ? ?// ?this.className = "on";
? ? ? ? ? ? ? ? ? ? ?//oDivs[this.index].className = "";
? ? ? ? ? ? ? ? ?}
2016-08-17
?for(var i= 0,len = oLis.length;i<len;i++) 分號(hào)寫成逗號(hào)
2016-08-11
oLis[i].className="on";
oDivs[i].className="";
給節(jié)點(diǎn)綁定事件執(zhí)行的函數(shù)會(huì)執(zhí)行上面那兩句,那問題是執(zhí)行時(shí)i是什么?很明顯當(dāng)你要執(zhí)行代碼時(shí),for已經(jīng)執(zhí)行完(因?yàn)槭录拷壎?,所以i恒定為oLis.length,所以oLis[i]和oDivs[i]是沒有的,所以出錯(cuò)
this在這里是指觸發(fā)函數(shù)的對象,比如<p onclick="fun()" id="na"></p> 假如p被點(diǎn)擊,觸發(fā)fun函數(shù)對象就是p,現(xiàn)在
this 等價(jià)于 document.getElementById("na")