作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
使用 jQuery,拆分列表最有效的方法是什么
<ul class="columnar"><li></li>... <li></li></ul>
分成几个子列表
<ul class="column1"><li></li>... <li></li></ul>
<ul class="column2"><li></li>... <li></li></ul>
其中每个子列表(除了可能的最后一个)都有 n 个项目。
我想将对 DOM 的查询和操作保持在最低限度,并将原始 DOM 元素移动到新列表中而不是克隆它们。
最佳答案
这是我到目前为止想出的:
var $ul = $(this),
items = $ul.children("li"),
itemCount = items.length,
colHeight = Math.ceil(itemCount/3);
// create temp DOM node to place the new lists in
var temp = $("<div></div>"),
newUL,
i = 1;
while($ul.children("li").length > colHeight) {
newUL = $("<ul class=\"columns\"></ul>");
newUL.append(items.filter(":gt(" + ((i * colHeight)-1) + ")").filter(":lt(" + colHeight + ")"));
i++;
temp.append(newUL.addClass("column" + i));
}
temp.children().insertAfter($ul.attr("class","columns column1"));
关于javascript - 使用 jquery 将列表拆分为大小相等的子列表的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794526/
我是一名优秀的程序员,十分优秀!