window.onload = function(){ var tr =document.getElementsByTagName("tr"); for (var i = 0; i < tr.length; i++) { tr[i].addEventListener("mouseover",function(){tr[i].style.color="red"},false); tr[i].addEventListener("mouseout",function(){tr[i].style.color=""},false); }
5 回答
qq_冲哥_0
TA贡献40条经验 获得超30个赞
function(){tr[i].style.color="red"} 改成 this.style.color ='red';
你这么写涉及到JS的闭包问题。 function(){tr[i].style.color="red"} 是一个闭包,如果它与包含它的函数引用同一个变量 i,
那么变量i 只能取得最后一个值 .你运行下面的函数可以看一下。
tr[i].addEventListener("mouseover",function(){ alert(i); // i 永远等于 tr.length,就是 for 循环运行后, i取得最后一个值。 },false);
添加回答
举报
0/150
提交
取消