什么時候用this,為什么用ali[i].index就不行
?window.onload=function(){
? ? ? ? var oDiv=document.getElementById("tab-list");
? ? ? ? var aDiv=oDiv.getElementsByTagName("div");
? ? ? ? var oul1=document.getElementById("ul1");
? ? ? ? var ali=oul1.getElementsByTagName("li");
? ? ? ? for(var i=0;i<ali.length;i++){
? ? ? ? ? ? ali[i].index=i;
? ? ? ? ? ? ali[i].onmouseover=function(){
? ? ? ? ? ? ? ? for(i=0;i<ali.length;i++){
? ? ? ? ? ? ? ? ? ? ali[i].className="";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? this.className="active";
? ? ? ? ? ? ? ? for(j=0;j<aDiv.length;j++){
? ? ? ? ? ? ? ? ? ? aDiv[j].className="hide";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? aDiv[ali[i].index].className="show";
? ? ? ? ? ? }
? ? ? ? }
? ? ? ??
? ? }
2016-10-28
這樣說吧,你遍歷完標簽過后給每個標簽添加一個事件,里面的this就是當前對象,你將下面的ali[i].index換成this.index或者直接用一個this都可以
2016-11-06
我的理解:“? i “ 是變量,變量就涉及到作用域,作用域那么重要不用解釋了。
我想ali[i].onmouseover=function(){} 是一個新函數(shù),若你把ali[i] 或ali[i].index (含有未知變量i 的對象)放在這個新函數(shù)內(nèi),自然會是lia[i]? is? undefined。。。外層函數(shù)的變量 ”i “ 對新函數(shù)來說沒有意義。除非你重新定義。
2016-10-24
如果用了ali[i]那么再這個for循環(huán)中每一個ali集合的元素都會改變他的class,而你要的效果其實是只需要改變鼠標移動的這個標簽
這段的邏輯就是在這個for循環(huán)里先把集合內(nèi)所有ali集合內(nèi)li標簽的class改成空,這里要用ali[i],之后再改變鼠標點擊或者移動的對象,這就是單獨的對象,用的是this
ali[i].index代表的也不是一個單獨的對象