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

这样写有什么错误吗?

      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";}    
        }
      }
 

提问者:慕粉4408527 2016-12-07 20:24

个回答

  • Konp
    2016-12-08 21:48:09

    改变颜色最好单独再写一个方法,onload是主体加载完后执行的,在添加函数里再次调用此函数。

    你这里的问题是:

    tr[i].onmouseover=function(){tr[i].style.backgroundColor="#f2f2f2";}

    改成:

    tr[i].onmouseover=function(){this.style.backgroundColor="#f2f2f2";}

  • 聪聪聪聪
    2016-12-07 22:13:14

    你的i是你的循环的东西,你怎么可以去用在tr[i]下面呢