"剪切和粘贴" - 使用Javascript在DOM中移动节点

use*_*435 34 javascript dom

我的html代码看起来大致如下:

<div id="id1">
  <div id="id2">
    <p>some html</p>
    <span>maybe some more</span>
  </div>
  <div id="id3">
    <p>different text here</p>
    <input type="text">
    <span>maybe even a form item</span>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

显然还有更多的东西,但这是基本的想法.我需要做的是切换#id2和#id3的位置,结果是:

<div id="id1">
  <div id="id3">...</div>
  <div id="id2">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有人知道一个函数(我确定我不是第一个需要这个功能的人),它可以读取和写入两个节点(及其所有子节点),以便在DOM中交换它们的位置?

Gre*_*reg 51

在这种情况下,document.getElementById('id1').appendChild(document.getElementById('id2'));应该做的伎俩.

更普遍的是你可以使用insertBefore().

  • `.prepend()` 可能也是一些人正在寻找的。这是更有用的方法的[简短列表](https://vanillajstoolkit.com/reference/#DOM-Injection)。 (5认同)