我有ul一些li元素,我想要做的是:
li元素,请将它们全部选中并将它们放入新元素中ul.ul,从下一个li元素开始并继续.ul.如果我从5个li元素开始,我希望最终得到1个ul元素和5个li孩子.
如果我从40个li元素开始,我希望最终得到7个ul元素,6个有6个li孩子,1个有4个元素.
在jQuery中处理这个问题最有效的方法是什么?
您可以通过循环和使用.slice()来实现.wrapAll(),如下所示:
var lis = $("#myUL li");
for(var i = 0; i < lis.length; i+=6) {
lis.slice(i, i+6).wrapAll("<li><ul></ul></li>");
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里测试一下.请注意,此版本在原始内部创建嵌套 <ul>元素(在它们自己内部,<li>因此它是有效的).如果你不想那样并且想要替换原件<ul>,.unwrap()首先是这样的:
var lis = $("#myUL li").unwrap();
for(var i = 0; i < lis.length; i+=6) {
lis.slice(i, i+6).wrapAll("<ul></ul>");
}
Run Code Online (Sandbox Code Playgroud)