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>?
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.