如何用jquery包装<li>标签中的每4个元素?

Xee*_*een 0 html javascript css jquery loops

我需要.product<li>标签内连续包装每4个div,以便在以下时间:

<ul>
  <div class="product">...</div>
  <div class="product">...</div>
  <div class="product">...</div>
  <div class="product">...</div>
  <div class="product">...</div>
  <div class="product">...</div>
</ul>
Run Code Online (Sandbox Code Playgroud)

它变成了:

<ul>
  <li>
    <div class="product">...</div>
    <div class="product">...</div>
    <div class="product">...</div>
    <div class="product">...</div>
  </li>
  <li>
    <div class="product">...</div>
    <div class="product">...</div>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在这个例子中我给了6个产品,因为它必须关闭包装,如果这些是最后的元素.

你能告诉我这是怎么做到的jquery吗?

Mil*_*war 5

您可以使用for循环遍历每个第4个元素,然后使用以下内容将3个前面的元素与当前的4n元素一起包装.wrapAll():

var productdivs = $("ul .product");
for(var i = 0; i < productdivs.length; i+=4) {
  productdivs.slice(i, i+4).wrapAll("<li></li>");
}
Run Code Online (Sandbox Code Playgroud)

工作演示