使用append()移动DOM元素?

发布于 2024-12-18 01:52:37 字数 406 浏览 1 评论 0原文

我有一个 div 元素,例如

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

...,我想将其从 DOM 中的一个位置移动到另一个位置。我可以使用 appendTo() 来完成此操作,如下所示:

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

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

如果重复,DOM 中就会有两个具有相同 id 的元素。我怎样才能避免这种情况呢?

I have a div element like

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

...that I'd like to move from one position to another in the DOM. Can I do this with appendTo(), like so:

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

...or will this duplicate it?

If it's being duplicated, there would be two elements with the same id in the DOM. How could I avoid this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

放我走吧 2024-12-25 01:52:37

是的,appendTo 方法从 DOM 树中移动元素。如果你想复制一个元素,可以使用.clone()

例子:

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

After:  <div></div>
        <span>
           <a>Test</a>
        </span>

Yes, the appendTo method moves elements from the DOM tree. If you want to copy an element, .clone() is used.

Example:

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

After:  <div></div>
        <span>
           <a>Test</a>
        </span>
抠脚大汉 2024-12-25 01:52:37

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

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

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

I took it directly from jQuery documentation http://api.jquery.com/append/

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

"If an element selected this way is inserted into a single location elsewhere in the DOM, it will be moved into the target (not cloned):"

情徒 2024-12-25 01:52:37

您可以使用 .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>

将是:

function moveIt() {
  var elementToBeMoved = $(".list1 li:first");
  $(".list2 li:first").append(elementToBeMoved);
}

因此,将第一个 .li.list1 移动到 .list2 的代码 io/ilyanice/pen/dRpmLL" rel="nofollow noreferrer">工作笔

You can do it with .append or .after or similar methods.

<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>

So the code to move the first .li from .list1 to .list2 will be:

function moveIt() {
  var elementToBeMoved = $(".list1 li:first");
  $(".list2 li:first").append(elementToBeMoved);
}

Working pen

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文