首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除JavaScript中DOM节点的所有子元素

删除JavaScript中DOM节点的所有子元素
EN

Stack Overflow用户
提问于 2010-10-18 04:51:00
回答 26查看 1.2M关注 0票数 1.1K

如何在JavaScript中删除DOM节点的所有子元素?

假设我有以下(难看的) HTML:

<p id="foo">
    <span>hello</span>
    <div>world</div>
</p>

然后我像这样抓取我想要的节点:

var myNode = document.getElementById("foo");

怎样才能删除foo的子节点,只剩下<p id="foo"></p>

我能不能这样做:

myNode.childNodes = new Array();

或者我应该使用removeElement的某种组合

我希望答案是直截了当的DOM;不过,如果您还提供了jQuery格式的答案以及仅限DOM的答案,则需要额外加分。

EN

回答 26

Stack Overflow用户

发布于 2010-10-18 05:02:51

如果您使用jQuery:

$('#foo').empty();

如果您不这样做:

var foo = document.getElementById('foo');
while (foo.firstChild) foo.removeChild(foo.firstChild);
票数 45
EN

Stack Overflow用户

发布于 2013-04-03 02:02:23

最快的。

var removeChilds = function (node) {
    var last;
    while (last = node.lastChild) node.removeChild(last);
};

感谢Andrey Lushnikov的his link to jsperf.com (很酷的网站!)

编辑:需要说明的是,firstChild和lastChild在Chrome上没有性能差异。顶部的答案显示了一个很好的性能解决方案。

票数 22
EN

Stack Overflow用户

发布于 2020-07-28 16:05:59

使用elm.replaceChildren()

它是实验性的,没有广泛的支持,但在没有参数的情况下执行时,它将执行您所要求的操作,而且它比遍历每个子对象并删除它更有效。如前所述,用空字符串替换innerHTML将需要浏览器进行超文本标记语言解析。

MDN Documentation

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3955229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档