我有一个div元素
<div id="move">Something</div>
...我想在 DOM 中从一个位置移动到另一个位置。我可以这样做吗appendTo(),像这样:
$('#move').fadeOut(500, function() {
$(this).appendTo('#another-container').fadeIn(500);
});
...或者这会复制它吗?
id如果它被复制,那么DOM 中会有两个相同的元素。我怎么能避免这种情况?
是的,该appendTo方法从 DOM 树中移动元素。如果要复制元素,.clone()则使用。
例子:
Body: <div>
<a>Test</a>
</div>
<span></span>
jQuery code:
$("a").appendTo("span");
After: <div></div>
<span>
<a>Test</a>
</span>
我直接从 jQuery 文档http://api.jquery.com/append/
$( ".container" ).append( $( "h2" ) );
“如果以这种方式选择的元素被插入到 DOM 中其他位置的单个位置,它将被移动到目标中(未克隆):”
您可以使用.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);
}