為什么我這么寫不對,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++) 分號寫成逗號
2016-08-11
oLis[i].className="on";
oDivs[i].className="";
給節(jié)點綁定事件執(zhí)行的函數(shù)會執(zhí)行上面那兩句,那問題是執(zhí)行時i是什么?很明顯當你要執(zhí)行代碼時,for已經(jīng)執(zhí)行完(因為事件全部綁定),所以i恒定為oLis.length,所以oLis[i]和oDivs[i]是沒有的,所以出錯
this在這里是指觸發(fā)函數(shù)的對象,比如<p onclick="fun()" id="na"></p> 假如p被點擊,觸發(fā)fun函數(shù)對象就是p,現(xiàn)在
this 等價于 document.getElementById("na")