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

关于改变颜色作用域的问题

      window.onload = function(){

         changeColor()  ; 

         var trNode = document.getElementsByTagName('tr');

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

     function changeColor(){

      for (var i = 0;i<trNode.length;i++) {

      trNode[i].onmouseover = function(){

      this.style.backgroundColor = ' #f2f2f2';//为什么用this而trNode[i]不行

     

      }

      trNode[i].onmouseout = function(){

      this.style.backgroundColor = '#fff';

      }

      }

     }

 

this.style.backgroundColor = ' #f2f2f2'; 

this.style.backgroundColor = '#fff';

这两句为什么用this而trNode[i]不行

提问者:绅先生 2018-11-29 14:15

个回答

  • 阳火锅
    2018-11-29 16:12:20

    onmouseover是一个事件函数,函数里面调不到外面的循环变量。。