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

删除和添加功能不能用,不知道错在哪了,求同学相救

  window.onload = function(){

                  

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

        var otable=document.getElementById("table");

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

        for(var i = 1;i <= otable.childNodes.length; i++){

            otr[i].onmouseover=function(){this.style.backgroundColor="#f2f2f2";}

            otr[i].onmouseout=function(){this.style.backgroundColor="#fff";}

        }

        

        

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

     function myadd(obj){

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

         var addin=document.getElementById("table").lastChild;

          

          var otd=document.createElement("td");

          otd.innerHTML="<input type='text'/>";

          otr.appendChild(otd);

          

          otd=document.createElement("td");

          otd.innerHTML="<input type='text'/>";

          otr.appendChild(otd);

          

          otd=document.createElement("td");

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

          otr.appendChild(otd);

          addin.appendChild(otr);

      }

     // 创建删除函数

     function dele(obj){

        var addin=document.getElementById("table").lastChild;

        var otr=obj.parentNode.parentNode;

        addin.removeChild(otr);

        

     }


提问者:Jake_seru 2015-12-22 20:30

个回答

  • 迷途的马尔斯
    2015-12-22 21:10:14

    • 你既然都通过otr来获取tr了,为什么还用otable.childNodes.length来控制循环语句,实在搞不懂,你的otable对象是多余的

    • 第4行和第5行应该是otr.onmouseover,应该是otr对象来调用方法啊,为什么是属性来调用方法了

    • 后面的函数就不多说了,不要那个table的对象的,莫名其妙令你的DOM操作变得很复杂