jquery将元素移动到最后一个子位置

jquery将元素移动到最后一个子位置,jquery,html,dom,Jquery,Html,Dom,假设我有一个包含一些随机元素的,但是我用这个唯一的选择器创建了一个元素:$('.myuniquelement')。我想使用.insertAfter()将此元素移动到我的中的最后一个子位置,这可能吗?解决办法是什么 这是我的解决方案:这样行吗 HTML: CSS: 要使用insertAfter(),必须知道要将元素移动到哪个元素之后。正如你所说,你有随机元素,当然你不知道当前的最后一个元素,所以这里你可以做什么 克隆要移动的元素并将其附加到父元素 jQuery代码如下所示: $clone_elem

假设我有一个包含一些随机元素的
,但是我用这个唯一的选择器创建了一个元素:
$('.myuniquelement')
。我想使用
.insertAfter()
将此元素移动到我的
中的最后一个子位置,这可能吗?解决办法是什么

这是我的解决方案:这样行吗

HTML:

CSS:


要使用
insertAfter()
,必须知道要将元素移动到哪个元素之后。正如你所说,你有随机元素,当然你不知道当前的最后一个元素,所以这里你可以做什么

克隆要移动的元素并将其附加到父元素

jQuery代码如下所示:

$clone_elem = $('.myUniqueElement').clone();
$('.myUniqueElement').remove();
$('div').append($clone_elem);

检查这一点

维卡斯是对的。然而,这可能是它的一个改进版本,因为原始元素被删除了,而不是它的克隆

    $elem = $('.myUniqueElement')
    $('div').append($elem.clone());
    $elem.remove();
试一试

还是简单

$('my-div').append($('.myUniqueElement'))

这是我的解决方案,我认为这是使用
的最佳方式。insertAfter()

HTML:

关键是 这是小提琴:

无需使用
.insertAfter
。您也不应该使用
.clone
,因为它将删除任何附加的数据或事件,除非您使用
.clone(true)

只需使用
.appendTo
将目标元素添加到
div
中,它将从其原始位置分离并添加为
div
的最后一个子元素:

$('.myUniqueElement').appendTo('#my-div');

无需多次调用$,只需将元素移动到其父元素的末尾即可:

var myEl = $('.my-el-selector');
myEl.appendTo(myEl.parent());

发布你的HTML代码片段…这是我的解决方案,可以吗?用Fiddle签出我的答案有很多方法可以做到这一点,你的解决方案和@vikasdevde的解决方案都是有效的(它们都有效!)。我从来没有读过jQuery源代码,所以我不知道细节。。。但我认为元素永远不会被克隆,除非您显式地创建一个副本(克隆)。很好,您得到了更好的解决方案,+1适合您。
.clone
应该只在您确实想要复制元素时使用。移动元素非常简单,无需复制它们。
var mydiv = $('my-div-selector');
mydiv.find('.myUniqueElement').appendTo(mydiv)
$('my-div').append($('.myUniqueElement'))
<div class='p'>
    <div class='myUniqueElement'>unique</div>
    <div>item</div>
    <div>item</div>
    <div>item</div>
</div>
<input type='button' id='b' value='Do'/>
$('#b').on('click',function(){
    $('.myUniqueElement').insertAfter($('.p :last-child'))
});
$('.myUniqueElement').appendTo('#my-div');
var myEl = $('.my-el-selector');
myEl.appendTo(myEl.parent());