大佬们。为什么这样写背景颜色不会改变呢

来源:9-22 编程练习

qq_借个背包就出发_03588511

2018-05-21 10:53

   var row=document.getElementsByTagName("tr");   
     for(i=0;i<row.length;i++)
     {
         row[i].onmouseover=function(){
            row[i].style.backgroundColor="#f2f2f2";
            
         }
         row[i].onmouseout=function(){
            row[i] .style.backgroundColor="#fff"
         }
    }

写回答 关注

2回答

  • 纸丶两面白
    2018-05-22 00:26:43
    已采纳

    这是一个闭包带来的问题,那什么是闭包,可以去看一个Bosn老师的课程7-1[JavaScript]理解闭包

    改成这样就行了:

       var row=document.getElementsByTagName("tr");   
         for(i=0;i<row.length;i++)
         {
             !function(i) {
                 row[i].onmouseover=function(){
                    row[i].style.backgroundColor="#f2f2f2";
                     
                 }
                 row[i].onmouseout=function(){
                    row[i] .style.backgroundColor="#fff"
                 } 
             }(i);
        }


  • 慕移动4708697
    2018-05-25 09:24:17
    var row =document.getElementsByTagName("tr");
    for(var i=0;i<row.length;i++){
            row[i].onmouseover=function () {
                this.style.backgroundColor="#f2f2f2";
            };
            row[i].onmouseout=function () {
               this.style.backgroundColor="#fff";
            }
    }


JavaScript进阶篇

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

467374 学习 · 21877 问题

查看课程

相似问题