克隆<李>并使用jQuery进行投掷
Clone <li> and throw with jQuery
我们有:
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
如何获取此列表的后半部分并将其移动到第一个<li>
之前?
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
相关文章:
- 通过点击<李>在jQuery中
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- Jquery在点击<a>标签
- 将jQuery从1.8更新到1.11<a>标记未附加
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 在<头部>使用javascript/jQuery
- jQuery只隐藏<tr>在一张桌子上
- jQuery可读性:在<李>要素
- jquery仅限<并且>文本框中的符号
- 检查页面范围并提取<h1>内容(如果使用JQuery存在页面)
- 检测活动<李>用于jQuery转盘(分页)
- jQuery:如何添加<br/>在不同的字符串中换行以分隔2中的句子
- Jquery将css类添加到父级<ul>元素
- jQuery对嵌套在<李>并且<a>元素,同时离开父<ul>打开
- 使用 jquery :lt 自定义简单的亚马逊型星级评定
- Jquery:lt(10)不'没有按预期工作
- Jquery<br>在html中,在展开过程中导致连续的文本节点
- jQuery<音频>插件不'不能在Firefox和Opera中工作
- jQuery & lt; tag>按不同选项排序