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

鼠标移动改变背景对新增加的行不起作用要怎么改呢

  <script type="text/javascript"> 

  

      window.onload = function(){

         var tr=document.getElementsByTagName('tr');//获取TR数组  

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

         {

             change(tr[i]);

         }

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

         function change(obj)

         {

             obj.onmouseover=function(){

                obj.style.background='#ccc';

             }

             obj.onmouseout=function(){

                 obj.style.background='#fff'

             }

         }

     

 

}

     

      // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;

      var nob=2;

     function add()

     {

         nob++;

         if(nob<10)

         {nob='0'+nob;}

         var tab=document.getElementById('table');

         var addtr=document.createElement('tr');

         tab.appendChild(addtr);

         var addth1=document.createElement('td');

         addtr.appendChild(addth1);

         var addth2=document.createElement('td');

         addtr.appendChild(addth2);

         var addth3=document.createElement('td');

         addth3.innerHTML="<a href='javascript:;'  onclick='deletetr(this)' >删除</a>";

         addtr.appendChild(addth3);

          

         

         addth1.innerHTML='xh0'+nob;

         var name=prompt("请输入座号为"+nob+'同学的座号',"")

            if (name!=null && name!="")

                {

                addth2.innerHTML=name;

                }

        

     }

   

     

     // 创建删除函数

     function deletetr(i)

     {

         var tr=i.parentNode.parentNode;

         tr.parentNode.removeChild(tr);

     }



  </script> 


提问者:慕盖茨2022422 2016-09-12 12:33

个回答

  • 素水凌心
    2016-09-12 16:00:04
    已采纳

    在add()函数的最后加上一句 window.onload(); 也可以

  • 慕粉3801737
    2016-09-12 15:02:50

    新添加的行没调用change()函数,在add()函数末尾加上:change(addtr);即可。

  • girlshine
    2016-09-12 14:51:38

    因为新增加的行还没调用change()函数,你在add()函数里的最后一行addtr.appendChild(addth3);的后面添加

    var tr=document.getElementsByTagName('tr');//获取TR数组  

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

             {

                 change(tr[i]);

             }

    就行了

  • 落落_落雨
    2016-09-12 14:31:03

    对新加的对象重新绑定事件