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
因?yàn)閠his代表是當(dāng)前觸發(fā)的這個(gè)對(duì)象;在onmouseover加載后,方法體中不存在i這個(gè)變量,并且在這個(gè)頁面加載時(shí),變量i已經(jīng)循環(huán)完畢,因此才需要賦值給li[i].index保存下來。
2016-04-05
因?yàn)樵趂unction(){}中,i是沒有定義的,不信你可以試試,在其中打印i看看,這涉及到作用域,所以需要用this