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

来源:9-22 编程练习

慕盖茨2022422

2016-09-12 12:33

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


写回答 关注

4回答

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

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

    素水凌心 回复慕盖茨202...

    不用谢,共同进步

    2016-09-12 17:24:23

    共 2 条回复 >

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

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

    慕盖茨202...

    添加了无法实现呢

    2016-09-12 16:30:50

    共 1 条回复 >

  • 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

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

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题