函数合并后为什么不能正常运行了?

来源:9-22 编程练习

wengyaqiang

2015-07-21 11:51


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

        }

}


将以上两段函数合并起来,改成以下代码,为什么不行呢?:


      window.onload = function(){

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

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

          {

            tr[i].onmouseover=function(){

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

            }

            tr[i].onmouseout=function(){

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

            }

          }

     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。

      }         


写回答 关注

2回答

  • 浅水了
    2015-07-21 13:11:19
    已采纳
    window.onload = function(){          
    var tr=document.getElementsByTagName("tr");
              for(var i= 0;i<tr.length;i++)
              {
                tr[i].id=i;                //这样呢?
                tr[i].onmouseover=function(){
                    tr[this.id].style.backgroundColor="#f2f2f2";
                }
                tr[i].onmouseout=function(){
                    tr[this.id].style.backgroundColor="#fff";
                }
              }
         // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
          }


    wengya...

    非常感谢!

    2015-07-26 14:31:15

    共 3 条回复 >

  • 闻道者夕可死否
    2015-07-21 14:03:16

    window.onload = function(){          

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

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

              {

                tr[i].onmouseover=function(){

                    this.style.backgroundColor="#f2f2f2";

                }

                tr[i].onmouseout=function(){

                    this.style.backgroundColor="#fff";

                }

              }

         // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。

          }



    wengya... 回复wengya...

    为什么不能直接用 tr[i]

    2015-07-21 16:56:24

    共 2 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题