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