我怎样才能获得前4个孩子并将其包装成div?

Ila*_*sda 3 jquery jquery-selectors

如何找到父母的前4个孩子并将其包装成div,然后将其包装为4,依此类推?谷歌不知道!:(

从:

<div class="main">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
</div>
Run Code Online (Sandbox Code Playgroud)

至:

<div lass="main">
    <div class="pack1">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
    </div>

    <div class="pack1">
        <div>5</div>
        <div>6</div>
        <div>7</div>
        <div>8</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.

我可以找到第4个:$('.main > div:lt(4)').wrapAll('<div class="pack1"></div>'); 但是如何获得每4个?

皮特

Dan*_*elB 6

不是最优雅的方式,但它的工作.

var sel;
while ( (sel = $('.main > div:not(.pack1)')).length > 0 )
{
    sel.slice(0,4).wrapAll('<div class="pack1"></div>');
}
Run Code Online (Sandbox Code Playgroud)

这里有一个小提琴.

更新

这里有班级的柜台.我们必须使用第二类pack来排除所有打包的div.

var sel;
var count = 1;
while ( (sel = $('.main > div:not(.pack)')).length > 0 )
{
    sel.slice(0,4).wrapAll('<div class="pack pack'+ count++ +'"></div>');
}
Run Code Online (Sandbox Code Playgroud)

小提琴

或者我们一起去

var sel;
var count = 1;
while ( (sel = $('.main > div:not([class^="pack"])')).length > 0 )
{
    sel.slice(0,4).wrapAll('<div class="pack'+ count++ +'"></div>');
}
Run Code Online (Sandbox Code Playgroud)

小提琴.