问答详情
源自:9-22 编程练习

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


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

            }

          }

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

      }         


提问者:wengyaqiang 2015-07-21 11:51

个回答

  • 浅水了
    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";
                }
              }
         // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
          }


  • 闻道者夕可死否
    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";

                }

              }

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

          }