我想将一个DIV元素移动到另一个元素中。例如,我想移动此(包括所有子对象):
<div id="source">
...
</div>
在这方面:
<div id="destination">
...
</div>
所以我有这个:
<div id="destination">
<div id="source">
...
</div>
</div>
我想将一个DIV元素移动到另一个元素中。例如,我想移动此(包括所有子对象):
<div id="source">
...
</div>
在这方面:
<div id="destination">
...
</div>
所以我有这个:
<div id="destination">
<div id="source">
...
</div>
</div>
当前回答
您可以使用:
为了在后面插入,
jQuery("#source").insertAfter("#destination");
为了插入另一元件内部,
jQuery("#source").appendTo("#destination");
其他回答
您也可以尝试:
$("#destination").html($("#source"))
但这将完全覆盖#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)
appendChild正是这样做的——基本上是剪切粘贴。
它将移动选定的元素及其所有子节点。
我刚刚使用了:
$('#source').prependTo('#destination');
我从这里抓起的。
您可能需要使用appendTo函数(它将添加到元素的末尾):
$("#source").appendTo("#destination");
或者,您可以使用prependTo函数(添加到元素的开头):
$("#source").prependTo("#destination");
例子:
$(“#appendTo”).click(function(){$(“#moveMeIntoMain”).appendTo($(“#main”));});$(“#prependTo”).click(function(){$(“#moveMeIntoMain”).prependTo($(“#main”));});#主要的,主要的{边框:2px纯蓝色;最小高度:100px;}.moveMeIntoMain{边框:1px纯红色;}<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><div id=“main”>main</div><div id=“moveMeIntoMain”class=“moveMeIntoMain”>将我移动到main</div><button id=“appendTo”>appendTo main</button><button id=“prependTo”>prependTo main</button>