克隆<li>并使用jQuery抛出

Jam*_*mes 0 html javascript css jquery html-lists

我们有:

<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

如何获得此列表的后半部分并在之前移动它<li>

use*_*716 8

var ul = $('ul');
var lis = ul.children('li');

ul.prepend(lis.slice(Math.round(lis.length / 2)))
Run Code Online (Sandbox Code Playgroud)

示例: http ://jsfiddle.net/8SNGn/

这首先使用[docs]方法缓存<ul>元素及其<li>子元素.children()

然后它使用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())
Run Code Online (Sandbox Code Playgroud)

示例: http ://jsfiddle.net/8SNGn/1/

如果你想要四舍五入到另一个方向,你可以用Math.floor()而不是Math.round.