改变颜色为什么需要另设一个函数

来源:9-22 编程练习

橡皮dog

2016-07-18 22:14

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


写回答 关注

3回答

  • Java_Android_
    2016-07-26 18:43:22
    已采纳

    把tr[i].style.backgroundColor="#f2f2f2";里的tr[i]改成this就可以了,因为当前对象就是tr[i],在当前对象里使用本对象只能用this,用tr[i]的话肯定就是undefined的了。以上纯属个人见解

    橡皮dog

    非常感谢!

    2016-07-28 23:38:19

    共 1 条回复 >

  • Goran3625877
    2016-07-28 14:09:41

    同问同问同问同问

  • qq_厉害了Word哥_1
    2016-07-18 23:49:40

    第七行  funciton  拼错了 - -! function

    橡皮dog

    拼写是对的也不可以

    2016-07-19 15:37:10

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题