克隆<li>并使用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     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...