问答详情
源自:9-22 编程练习

为什么我用row[i].style.backgroundColor没反应,只能用this.style.backgroundColor

 var row=document.getElementsByTagName("tr"); 

for(var i=0;i<row.length;i++){

  row[i].onmouseover=function(){

 row[i].style.backgroundColor = "#ccc";

}

上面的运行不出结果,只有把   row[i].style.backgroundColor = "#ccc"; 改成

this.style.backgroundColor = "#ccc"; 才能出结果。

为什么啊。row[i]取得不是每一行的对象吗?


提问者:慕粉8816468 2017-08-13 22:32

个回答

  • 猫胡子上的花
    2018-07-27 10:54:53

    我觉得把划过写到for外面试试,因为他未必知道你划过的是哪个

  • 拥牙令
    2017-08-22 21:47:49

    感谢你提出的问题,帮我解决了大忙了~

  • 慕标3201646
    2017-08-14 14:54:26

    我觉得可能是i在后面写的函数中是不可见的,只能通过传递参数的方式,告诉函数row的第几个,所以用this比较直接