this為何不能用li[i]取代,this.indes為何不能用i取代?
window.onload=function(){
var?ul1=document.getElementById('ul1');
var?li=ul1.getElementsByTagName('li');
var?tab=document.getElementById('tab-list');
var?div=tab.getElementsByTagName('div');
for(var?i=0;i<li.length;i++){
li[i].index=i;
li[i].onmouseover=function(){
for(var?j=0;j<li.length;j++){
li[j].className="";
div[j].className="hide";
}
this.className="active";
div[this.index].className="show";
}
}
}
2016-04-05
因為this代表是當前觸發的這個對象;在onmouseover加載后,方法體中不存在i這個變量,并且在這個頁面加載時,變量i已經循環完畢,因此才需要賦值給li[i].index保存下來。
2016-04-05
因為在function(){}中,i是沒有定義的,不信你可以試試,在其中打印i看看,這涉及到作用域,所以需要用this