亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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";
		}
	}
}


正在回答

2 回答

因為this代表是當前觸發的這個對象;在onmouseover加載后,方法體中不存在i這個變量,并且在這個頁面加載時,變量i已經循環完畢,因此才需要賦值給li[i].index保存下來。

0 回復 有任何疑惑可以回復我~
#1

Sinoproud 提問者

謝謝您!
2016-04-05 回復 有任何疑惑可以回復我~

因為在function(){}中,i是沒有定義的,不信你可以試試,在其中打印i看看,這涉及到作用域,所以需要用this

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

this為何不能用li[i]取代,this.indes為何不能用i取代?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號