我想将一个DIV元素移动到另一个元素中。例如,我想移动此(包括所有子对象):

<div id="source">
  ...
</div>

在这方面:

<div id="destination">
  ...
</div>

所以我有这个:

<div id="destination">
  <div id="source">
    ...
  </div>
</div>

当前回答

appendChild正是这样做的——基本上是剪切粘贴。

它将移动选定的元素及其所有子节点。

其他回答

Bekim Bacaj回答的肮脏尺寸改进:

div{border:1px实心;margin:5px}<div id=“source”onclick=“destination.appendChild(this)”>单击我</div><div id=“destination”></分区>

我需要将内容从一个容器移动到另一个容器,包括所有事件侦听器。jQuery没有实现它的方法,但标准的DOM函数appendChild可以实现。

// Assuming only one .source and one .target
$('.source').on('click',function(){console.log('I am clicked');});
$('.target')[0].appendChild($('.source')[0]);

使用appendChild删除.source*并将其放入目标,包括其事件侦听器:Node.appendChild()(MDN)

如果要放置元素的div中包含内容,并且希望元素显示在主要内容之后:

  $("#destination").append($("#source"));

如果要放置元素的div中包含内容,并且希望在主要内容之前显示元素:

$("#destination").prepend($("#source"));

如果要放置元素的div为空,或者要完全替换它:

$("#element").html('<div id="source">...</div>');

如果要在上述任一项之前复制元素:

$("#destination").append($("#source").clone());
// etc.

我的解决方案:

移动:

jQuery("#NodesToMove").detach().appendTo('#DestinationContainerNode')

副本:

jQuery("#NodesToMove").appendTo('#DestinationContainerNode')

注意.detach()的用法。复制时,请注意不要复制ID。

appendChild正是这样做的——基本上是剪切粘贴。

它将移动选定的元素及其所有子节点。