為什么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ù)應該可以從父函數(shù)哪里獲取tr[i]的值吧。
看了好多答案,搞暈了,望指正,跪求?。?!
2015-02-27
通過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"; } ????} }