jquery 如何把前三个子元素复制到父容器的后边?

<ul class="index-list-content">
    <li>xxx</li>
    <li>xxx</li>
    <li>xxx</li>
</ul>


$('.index-list-content').append($('.index-list-content').find('li:lt(3)'));

jqeuery的append不能直接接收jquery对象吗?如果改成$('.index-list-content').append($('.index-list-content').find('li:lt(3)').html());只获得了第一个li,有什么方法把前三个子元素复制到index-list-content的后边?

阅读 3.2k
3 个回答

append具有剪切复制的功能,所以看似你的代码没起作用

可以使用 clone 克隆下来

$('.index-list-content').append($('.index-list-content').find('li:lt(3)').clone());
var $ele = $('.index-list-content');
$ele.chilren().each(function(){
    $(this).clone().insertAfter($('.index-list-content'))
})

你的代码可以生效啊,append可以接受jQuery对象:

<ul class="index-list-content">
    <li>111</li>
    <li>222</li>
    <li>333</li>
    <li>444</li>
</ul>
$('.index-list-content').append($('.index-list-content').find('li:lt(3)'));

测试结果:
clipboard.png

打开你给的网址,我这边是生效的,浏览器是Chrome

clipboard.png

我理解错了,懂你的意思了,你是复制,不是移动。上面的代码的作用是移动。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进