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

大神求解释啊 脑子笨转不过弯来

 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";
        }
     }
     问题1: window.onload = function(){
          var tr=document.getElementsByTagName("tr");
          for(var i= 0;i<tr.length;i++)
          {
              bgcChange(tr[i]);
          }
          这里的   bgcChange(tr[i]);是什么意思? 这一段的代码 - -没理解。前面的for循环
          感觉是把每一个tr装到   bgcChange(tr[i]);这里、可这个东西是哪里来的?
          问题2:
          function bgcChange(obj)
     {
        obj.onmouseover=function(){
            obj.style.backgroundColor="#f2f2f2";
        }
        obj.onmouseout=function(){
            obj.style.backgroundColor="#fff";
        }
         function bgcChange(obj) 这里跟刚才第一段代码里的 bgcChange(tr[i]),有什么关联 吗
         为什么?


正在回答

2 回答

1、document.getElementByTagName("tr")返回的是一个包含所有tr标签的数组;bgcChange(tr[i])就是数组第i个元素传给bgcChange函数;2、 bgcChange(tr[i])是对bgcChange函数的调用,将tr[i]代替obj;

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

qq_宾克斯的美酒_04230322 提问者

document.getElementByTagName("tr")返回的是一个包含所有tr标签的数组;bgcChange(tr[i])就是数组第i个元素传给bgcChange函数; 可是- -函数可以这么用吗 前面都没讲过啊for(var i= 0;i<tr.length;i++) { bgcChange(tr[i]); }你看就莫名其妙就出现了。 函数不应该是要 先声明吗 function 函数名(){}这样的吗?
2016-12-29 回复 有任何疑惑可以回复我~
#2

qq_宾克斯的美酒_04230322 提问者

恩。还有就是 函数不是应该先声明 在调用吗 他什么都没声明就出来了bgcChange(tr[i]);
2016-12-29 回复 有任何疑惑可以回复我~
#3

qq_宾克斯的美酒_04230322 提问者

非常感谢!
2016-12-29 回复 有任何疑惑可以回复我~

我记得先声明函数再使用只有在C语言里才是必须的吧?

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

举报

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

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

进入课程

大神求解释啊 脑子笨转不过弯来

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