【发布时间】:2014-01-21 12:09:18
【问题描述】:
想象一下:
<div id="old-parent">
<span>Foo</span>
<b>Bar</b>
Hello World
</div>
<div id="new-parent"></div>
可以编写什么 JavaScript 来将所有子节点(包括元素和文本节点)从 old-parent 移动到 new-parent 而无需 jQuery?
我不关心节点之间的空白,虽然我希望能捕捉到流浪的Hello World,但它们也需要按原样迁移。
编辑
明确地说,我想结束:
<div id="old-parent"></div>
<div id="new-parent">
<span>Foo</span>
<b>Bar</b>
Hello World
</div>
建议重复的问题的答案将导致:
<div id="new-parent">
<div id="old-parent">
<span>Foo</span>
<b>Bar</b>
Hello World
</div>
</div>
【问题讨论】:
-
@MarcB,这不是重复的。您链接到的问题不涉及移动 all 子项,该问题的任何答案也没有解决我需要移动不同类型的 HTML 节点(例如文本节点)。
-
答案正是您所需要的。 dom 是一棵树。移动一个节点,该节点的所有子节点都会随之移动。
-
@MarcB 有时您不希望目标中的父对象。例如,考虑将 TODO 列表的所有元素从“待定”父元素移动到“完成”父元素。
标签: javascript html dom-manipulation