为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在删除的时候会出现 Uncaught TypeError: Cannot read property 'parentNode' of undefined

<!DOCTYPE html>

<html>

 <head>

  <title> new document </title>  

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  

  

  <script type="text/javascript"> 

  

      window.onload = function(){

         var tagname1   =    document.getElementsByTagName("tr")

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

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

{

colorchange(tagname1[i]);

}

}

     function colorchange(obj){

    obj.onmouseover=function(){

    obj.style.backgroundColor = "#f2f2f2";

    }

    obj.onmouseout=function(){

    obj.style.backgroundColor = "#fff";

    }

}

     

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

     var num=2;

     function add(){

     

        var tr1 = document.createElement("tr");

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

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

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

        xh.innerHTML = "xh00"+ ++num;

        xm.innerHTML = xh.innerHTML+"人";

        cz.innerHTML = "<a href = 'javascript:deletelast(this)'>删除</a>"

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

        tab.appendChild(tr1);

        tr1.appendChild(xh);

        tr1.appendChild(xm);

        tr1.appendChild(cz);

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

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

        colorchange(tagname2[i]);

        }

     }

   

     

     // 创建删除函数

     function deletelast(obj){

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

            var tr = obj.parentNode.parentNode;

            table.removeChild(tr);

     }



  </script> 

 </head> 

 <body> 

   <table border="1" width="50%" id="table">

   <tr>

<th>学号</th>

<th>姓名</th>

<th>操作</th>

   </tr>  


   <tr>

<td>xh001</td>

<td>王小明</td>

<td><a href="javascript:deletelast(this);" >删除</a></td>   <!--在删除按钮上添加点击事件  -->

   </tr>


   <tr>

<td>xh002</td>

<td>刘小芳</td>

<td><a href="javascript:deletelast(this);" >删除</a></td>   <!--在删除按钮上添加点击事件  -->

   </tr>  


   </table>

   <input type="button" value="添加一行" onclick="add()" />   <!--在添加按钮上添加点击事件  -->

 </body>

</html>


正在回答

1 回答

function deletelast(obj){

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

            var tr = obj.parentNode.parentNode;

            table.removeChild(tr);

     }

你的删除函数里table指的是“table”标签的最后一个子节点,实际上也是一个“tr"标签,而removeChild是删除子节点,你的table和tr是同级的tr标签,所以会出错


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么在删除的时候会出现 Uncaught TypeError: Cannot read property 'parentNode' of undefined

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信