这样写为什么鼠标移动到一行上颜色不改变?

来源:9-22 编程练习

小不点fly

2016-03-24 15:55

window.onload = function(){

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

    for(var i=0; i<trs.lenght; i++){

             bgchange(trs[i]);

    }   

}

      // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。

    function bgchange(obj){

        obj.onmouseover = function(){

            obj.style.backgroundColor = "#f2f2f2";

        }

        obj.onmouseout = function(){

            obj.style.backgroundColor = "#fff";

        }

 }


写回答 关注

1回答

  • 策神
    2016-03-24 20:17:57

    两处地方有错:

    第一:i<trs.lenght   应该为   i<trs.length

    第二:最后一个中括号错了,要改为英文的。

    但像你这样写的代码的话会有个问题,那就是添加的 新一行的背景色不会改变,因为你的bgchange(obj)函数是写在window.onload页面加载里面的,所以新的一行无法调用这个方法,或者说即使调用了bgchange(obj) 这个方法,背景色也不会改变,把改变背景色的代码完整的写在一个函数里就行了。

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题