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

9-22练习:删除函数

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

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

正在回答

1 回答

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

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

一个完整的<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>

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

如有纰漏,还望指正。

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

举报

0/150
提交
取消

9-22练习:删除函数

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