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

第九章练习题

第九章练习

第九章练习题感觉好难自己一点思路都没有,看了大神写的代码有好几个地方不太懂求大神帮忙解释。

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

        }

     }

这是大神写的一段代码。这里的obj是不是形参?如果是该如何理解obj与tr【i】的关系?为什么把obj改成t【i】后就不行了?还有代码里面是先调用bgcchange()函数,然后在定义函数,这样为什么也可以?

正在回答

4 回答

前面一个for循环就是遍历,执行已经封装好了的bgcChange()这个函数,obj就是形参,换成什么代码多行(除了已经定义的变量,比如tr[i]),这里面的tr[i]就是实参。你要想把obj换成tr[i],就要把封装的函数内容放在循环里面,就像这样:

          var tr=document.getElementsByTagName("tr");

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

          {

                  tr[i].onmouseover=function(){

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

        }

        ty[i].onmouseout=function(){

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

        }

       }

不知道我说明白了没有、

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

新人沈琦斌 提问者

非常感谢!你讲解的很明白,非常感谢你。
2016-04-27 回复 有任何疑惑可以回复我~

谢谢你的讲解。你这个关于this的用法我看了有7、8个讲解,可是还是不是很清楚。

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

要想把obj换成tr[i]应该是这样的,不知道前面那个答案你去测试过没有~

window.onload = function(){
          var tr=document.getElementsByTagName("tr");
          for(var i= 0;i<tr.length;i++)
          {
              tr[i].onmouseover=function color1(){this.style.backgroundColor="#f2f2f2";}

                tr[i].onmouseout=function color2(){this.style.backgroundColor="#fff";}
        }

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

前面几个问题解答的挺全面了,我就给你解释最后一个:“还有代码里面是先调用bgcchange()函数,然后在定义函数,这样为什么也可以?”程序线程执行时一步一步来的并不是从上往下的顺序,当程序执行到函数bgchange()时,就会开始函数的解析(去执行函数体)完事以后又回来继续往下执行。希望你能看懂

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

新人沈琦斌 提问者

谢谢你的讲解,真的非常感谢。
2016-04-27 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

第九章练习题

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