删除table列表的一行,有一个小疑惑。

来源:9-22 编程练习

戴诛Uhziad

2016-12-19 23:04

我要删除列表里面的一行,虽然变量对象table 可以用obj.parentNode.parentNode.parentNode来代替这个方法是可行的。但是为什么下面代码里面去掉lastChild会不行了呢。层次不是刚刚好吗???求解

      function deleteItem(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="#" onclick = "deleteItem(this);return false;" >删除</a></td>
     </tr>

     <tr>
    <td>xh002</td>
    <td>刘小芳</td>
    <td><a href="javasript:;" onclick = "deleteItem(this);" >删除</a></td>
     </tr>
     </table>
     <input type="button" value="添加一行"  onclick = "addTo();"/>
 </body>


写回答 关注

1回答

  • 戴诛Uhziad
    2016-12-19 23:30:13

    自己测试解决了。<table>与<tr>之间会隐性生成<tbody>,而类似于Chrome这类型浏览器回车键算是一个文本节点所以<tbody>是<table>的lastChild.

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题