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

来源:9-22 编程练习

绅先生

2018-11-29 14:15

      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]不行

写回答 关注

1回答

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

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

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题