9

我有一个div元素

<div id="move">Something</div>

...我想在 DOM 中从一个位置移动到另一个位置。我可以这样做吗appendTo(),像这样:

$('#move').fadeOut(500, function() {
   $(this).appendTo('#another-container').fadeIn(500);
});

...或者这会复制它吗?

id如果它被复制,那么DOM 中会有两个相同的元素。我怎么能避免这种情况?

4

3 回答 3

15

是的,该appendTo方法从 DOM 树中移动元素。如果要复制元素,.clone()则使用。

例子:

Body:   <div>
           <a>Test</a>
        </div>
        <span></span>
jQuery code:
   $("a").appendTo("span");

After:  <div></div>
        <span>
           <a>Test</a>
        </span>
于 2011-11-24T20:46:38.693 回答
6

我直接从 jQuery 文档http://api.jquery.com/append/

$( ".container" ).append( $( "h2" ) );

“如果以这种方式选择的元素被插入到 DOM 中其他位置的单个位置,它将被移动到目标中(未克隆):”

于 2014-06-19T21:46:35.510 回答
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);
}

工作笔

于 2017-06-14T16:19:45.130 回答