为了账号安全,请及时绑定邮箱和手机立即绑定

为啥1行2不行呢

1:

     /* window.onload = function(){

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

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

           bdc(hang[i]);

            }

        }

     function bdc(can){

         can.onmouseover=function(){

             can.style.backgroundColor="#f2f2f2";

         }

         can.onmouseout=function(){

             can.style.backgroundColor="#fff";

         }

     }*/

2:     

    window.onload = function(){

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

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

            hang[i].onmouseover=function(){

                hang[i].style.backgroundColor="#f2f2f2";

            }

            hang[i].onmouseout=function(){

                hang[i].style.backgroundColor="#fff";

            }

        }

    }


正在回答

2 回答

2改成

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

            hang[i].onmouseover=function(){

                this.style.backgroundColor="#f2f2f2";

            }

            hang[i].onmouseout=function(){

                this.style.backgroundColor="#fff";

            }

}

就好了呢~

因为在你嵌套的函数里面并不知道hang[i]是谁啊~

作用域的问题

0 回复 有任何疑惑可以回复我~
#1

山岳之王 提问者

非常感谢!受教了
2016-02-29 回复 有任何疑惑可以回复我~
#2

白瑞爷 回复 山岳之王 提问者

客气了~大家共同交流
2016-02-29 回复 有任何疑惑可以回复我~

如楼上所言改成this试试。1的函数里带参数

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468044    人
  • 解答问题       21891    个

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

进入课程

为啥1行2不行呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信