方法一:
window.onload = function(){
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
var tr = document.getElementsByTagName("tr");
for(var i=0; i<tr.length; i++){
tr[i].onmouseover=function(){
tr[i].style.backgroundColor="#f2f2f2";
}
tr[i].onmouseout=function(){
tr[i].style.backgroundColor="#fff";
}
}
}
方法二:
window.onload = function(){
// 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
var tr = document.getElementsByTagName("tr");
for(var i=0; i<tr.length; i++){
bgcChange(tr[i]);
}
}
function bgcChange(obj)
{
obj.onmouseover=function(){
obj.style.backgroundColor="#f2f2f2";
}
obj.onmouseout=function(){
obj.style.backgroundColor="#fff";
}
}
方法一不能正常执行,鼠标指向后颜色不变;方法二可以正常改变背景颜色,这是什么原因?纠结在这问题上2小时了。。。。。
window.onload = function(){ var tr = document.getElementsByTagName("tr"); for(var i=0; i<tr.length; i++){ tr[i].onmouseover=function(){ alert(i); //你在这里弹出一下 i 看看是不是你觉得应该出现的值; //tr[i].style.backgroundColor="#f2f2f2"; //你可以这么写试试 this.style.backgroundColor="#f2f2f2"; }; // //也可以这么试一下 // (function(i){ // tr[i].onmouseover=function(){ // tr[i].style.backgroundColor="#f2f2f2"; // } // }(i)); //这个方法的改法同上 tr[i].onmouseout=function(){ tr[i].style.backgroundColor="#fff"; } } }
你可以试着按照注释的来写写看,原因你可以去查一下闭包作用域相关的资料了解一下
晕乎乎