9-22练习:删除函数

来源:9-22 编程练习

AlohaC

2017-03-03 12:49

function deleteRow(obj){
            var tr=obj.parentNode.parentNode;
            var table=document.getElementById("table");
            table.removeChild(tr);
        }

这么写为什么只能删除新建的行,不能删除默认的行呢?

写回答 关注

1回答

  • AlohaC
    2017-03-03 13:35:03

    不好意思,刚开始搜索的时候没有发现类似问题 为什么删除原有的两行删不掉?和点赞最多的答案区别在哪里?

    根据这个问题的答案,补充一下答案。

    一个完整的<table>标签如下:

    <table>
        <thead> </thead>
        <tfoot>  </tfoot>
        <tbody>
            <tr>
                <td>
                </td>
            </tr>
    </tbody>

    当使用题目列举的删除函数,<table>默认子节点是不存在<tr>标签的,这是默认两行删不掉的原因。

    而我们大多数人的添加函数中,基本上是用下面这种方式:

    table.appendChild(tr);

    即把“新建的行“看作<table>标签的子节点加入到其中,即

    <table>
        <thead> </thead>
        <tfoot>  </tfoot>
        <tbody> </tbody>
        <tr> </tr> // appendChild(); 添加的节点
     </table>

    这就造成了只能删除新建的行,不能删除默认的两行。

    如有纰漏,还望指正。

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题