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

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

如何删除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唯一的答案,那么还需要额外的点。


不负相思意
浏览 3582回答 3
3回答

阿晨1998

备选案文1(慢得多,见下文评论):var&nbsp;myNode&nbsp;=&nbsp;document.getElementById("foo");myNode.innerHTML&nbsp;=&nbsp;'';备选案文2(速度快得多):var&nbsp;myNode&nbsp;=&nbsp;document.getElementById("foo");while&nbsp;(myNode.firstChild)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;myNode.removeChild(myNode.firstChild);}

ITMISS

var&nbsp;myNode&nbsp;=&nbsp;document.getElementById("foo");var&nbsp;fc&nbsp;=&nbsp;myNode.firstChild;while(&nbsp;fc&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;myNode.removeChild(&nbsp;fc&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;fc&nbsp;=&nbsp;myNode.firstChild;}如果您有可能受到jQuery影响的后代,那么您必使用一些方法来清理jQuery数据。$('#foo').empty();jQuery.empty()方法将确保任何与被删除元素相关的jQuery数据都将被清除。如果你只是用DOM去除孩子的方法,这些数据将保留下来。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript