我有一个div
元素,如
<div id="move">Something</div>
...我想在DOM中将移动从一个位置移动到另一个位置。我可以使用appendTo()
执行此操作,如下所示:
$('#move').fadeOut(500, function() {
$(this).appendTo('#another-container').fadeIn(500);
});
......还是会复制它?
如果它被复制,那么DOM中将有两个具有相同id
的元素。我怎么能避免这个?
答案 0 :(得分:13)
是的,appendTo
方法从DOM树中移动元素。如果要复制元素,则使用.clone()
。
示例:
Body: <div>
<a>Test</a>
</div>
<span></span>
jQuery code:
$("a").appendTo("span");
After: <div></div>
<span>
<a>Test</a>
</span>
答案 1 :(得分:4)
我是直接从jQuery文档http://api.jquery.com/append/
中获取的$( ".container" ).append( $( "h2" ) );
&#34;如果以这种方式选择的元素被插入到DOM中其他位置的单个位置,它将被移动到目标中(未克隆):&#34;
答案 2 :(得分:0)
您可以使用.append
或.after
或类似方法执行此操作。
<ul class="list1">
<li>You wanted to move this element!</li>
<li>Element 2</li>
<li>Element 3</li>
</ul>
<ul class="list2">
<li></li>
<li>Element 2</li>
<li>Element 3</li>
</ul>
<button onclick="moveIt()">Move element</button>
因此,将第一个.li
从.list1
移至.list2
的代码将为:
function moveIt() {
var elementToBeMoved = $(".list1 li:first");
$(".list2 li:first").append(elementToBeMoved);
}