克隆
  • 并使用jQuery抛出
  • | 我们有:
    <ul>
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
    </ul>
    
    我如何获得此列表的后半部分并将其移至第一个“ѭ”之前?     
    已邀请:
            
    var ul = $(\'ul\');
    var lis = ul.children(\'li\');
    
    ul.prepend(lis.slice(Math.round(lis.length / 2)))
    
    示例:http://jsfiddle.net/8SNGn/ 首先使用
    children()
    [docs]方法缓存
    <ul>
    元素及其
    <li>
    子元素。 然后,它使用
    prepend()
    [docs]方法将最后的
    li
    元素添加到
    ul
    的开头。 通过使用
    slice()
    [docs]方法并向其传递
    li
    个元素的总数除以2(得出奇数时,使用
    Math.round()
    舍入),可以得到最后一个元素。 编辑: 我刚刚注意到您的问题标题中带有“克隆”字样。 问题的其余部分似乎没有建议,但是如果您确实想克隆后半部分,则可以使用
    clone()
    [docs]方法。
    var ul = $(\'ul\');
    var lis = ul.find(\'li\');
    
    ul.prepend(lis.slice(Math.round(lis.length / 2)).clone())
    
    示例:http://jsfiddle.net/8SNGn/1/ 而且,如果您想将舍入移到另一个方向,可以使用
    Math.floor()
    而不是
    Math.round
    。     
            
    var items = $(\"ul li\");
    items.filter(function(index) {
        return index > items.length / 2;
    }).prependTo($(\"ul\")[0]);
    
    应该管用。     
            
    var len = $(\'li\').length - 1;
    
    for(var i = 0; i < len/2; i++){
        var $li = $(\'li\').eq(len);
        $(\'ul\').prepend($li);
    
    }
    
    演示: http://jsfiddle.net/NiceGuy4263/Ws5ZK/     
            jQuery前置http://api.jquery.com/prepend/     
            看一下jQuery的.slice()过滤器: http://api.jquery.com/slice     

    要回复问题请先登录注册