第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么this替換成tr[i]就改變不了顏色?暈了,跪求指正。

??????window.onload?=?function(){??????????????
?????//?鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
????????var?tr=document.getElementsByTagName("tr");?
????????var?rowNum=tr.length;
tr[]
????????for(var?i=0;i<rowNum;i++){
???????????tr[i].onmouseover=function(){this.style.backgroundColor="#f2f2f2";}
???????????tr[i].onmouseout=function(){this.style.backgroundColor="#fff";}?
????????}
????}

為什么不能用tr[i]代替this?

for循環(huán)里面的函數(shù)是window.onload那個函數(shù)的子函數(shù),那么子函數(shù)應(yīng)該可以從父函數(shù)哪里獲取tr[i]的值吧。

看了好多答案,搞暈了,望指正,跪求?。?!

正在回答

1 回答

通過console 或 alert 進行調(diào)試,打印i的值就知道,for循環(huán)完畢時,i的值跟你要的索引是不一樣的。


window.onload?=?function(){
????//?鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
????var?tr=document.getElementsByTagName("tr");
????var?rowNum=tr.length;
????for(var?i=0;i<rowNum;i++){
	tr[i].index?=?i;	//給當前對象添加屬性記錄索引值
	tr[i].onmouseover=function(){
		console.log(i);	//鼠標移入的時候,for循環(huán)已遍歷完,i值不是你要的索引,而是rowNum?或?其他地方重新給i的賦值
		tr[this.index].style.backgroundColor="#f2f2f2";
	}
	tr[i].onmouseout=function(){
		tr[this.index].style.backgroundColor="#fff";
	}
????}
}


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Snail_N 提問者

謝謝你!
2015-02-27 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Snail_N 提問者

已經(jīng)找到問題是作用域鏈和閉包不理解的問題,需要進一步消化一下,謝謝你的幫助。
2015-02-27 回復(fù) 有任何疑惑可以回復(fù)我~
#3

chenbowen

謝謝!
2015-04-22 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么this替換成tr[i]就改變不了顏色?暈了,跪求指正。

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號