Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将无序列表分组为3个子组_Javascript_Jquery_Count - Fatal编程技术网

Javascript 将无序列表分组为3个子组

Javascript 将无序列表分组为3个子组,javascript,jquery,count,Javascript,Jquery,Count,我有一组无序的列表,我试图将每个列表组动态划分为3个子组。到目前为止,我有: var uls = $("ul > li"); for(var i = 0; i < uls.length; i+=3) { uls.slice(i, i+3).wrapAll("<ul class='new'></ul>"); } 但正如你所看到的,它还没有完全起作用。这是怎么回事 $('ul')。每个(函数(){ var uls=$(“li”,本); 对于(变量i=0;ili”

我有一组无序的列表,我试图将每个列表组动态划分为3个子组。到目前为止,我有:

var uls = $("ul > li");
for(var i = 0; i < uls.length; i+=3) {
uls.slice(i, i+3).wrapAll("<ul class='new'></ul>");
}
但正如你所看到的,它还没有完全起作用。

这是怎么回事

$('ul')。每个(函数(){
var uls=$(“li”,本);
对于(变量i=0;i”);
}
});​
您得到错误分组的原因是因为您从收集每个li开始(“ul>li”等同于任何ul的所有li)。您应该做的是选择每个ul的子级的所有li,执行分组,然后转到下一个ul。

这是怎么回事

$('ul')。每个(函数(){
var uls=$(“li”,本);
对于(变量i=0;i”);
}
});​

您得到错误分组的原因是因为您从收集每个li开始(“ul>li”等同于任何ul的所有li)。您应该做的是选择每个ul的子级的所有li,执行分组,然后转到下一个ul。

只是好奇。。。否决票是怎么回事?@AlecSanger ha?我没有看到任何反对票…那是因为我的上升票使它回到了0…@AlecSanger-我不知道为什么有人会反对,因为我有很好的记录,并且尝试过一些东西,他们甚至没有留下评论为什么他们反对它。谢谢,非常感谢。只是好奇。。。否决票是怎么回事?@AlecSanger ha?我没有看到任何反对票…那是因为我的上升票使它回到了0…@AlecSanger-我不知道为什么有人会反对,因为我有很好的记录,并且尝试过一些东西,他们甚至没有留下评论为什么他们反对它。谢谢,非常感谢。是的,完美>>注意:我想你的答案中没有正确的链接,这是我的旧链接。我发现这最终会在
    中出现
      标记,不确定这在语义上是否正确。我可以做:
      $('ul').unwrap()
      这可以在事后删除多余的
        原件,但我猜可能有更好的方法。是的,完美>>注意我想你的答案中没有正确的链接,这是我以前的链接。我发现这最终会在
          中添加
            标记,不确定这在语义上是否正确。我可以做:
            $('ul').unwrap()<h2>Group 1</h2>
            <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
            </ul>
            
            <h2>Group 2</h2>
            <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
            <li>Item 6</li>
            <li>Item 7</li>
            </ul>
            
            <h2>Group 1</h2>
            <ul>
                <li>Item 1</li>
                <li>Item 2</li>
                <li>Item 3</li>
            </ul>
            
            <ul>
                <li>Item 4</li>
                <li>Item 5</li>
            </ul>
            
            <h2>Group 2</h2>
                <ul>
            etc... 
            
            $('ul').each(function(){
                var uls = $("li", this);
            
                for(var i = 0; i < uls.length; i+=3) {
            
                var lis = $("li", this);
            
                    uls.slice(i, i+3).wrapAll("<ul class='new'></ul>");
                }
            });​