围绕每三个div包含一个div

Edw*_*rdM 6 jquery

假设我有6个子div并且没有唯一标识符:

<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
Run Code Online (Sandbox Code Playgroud)

使用jquery,我想用每个3包装<div class="parent"></div>.所以它会呈现为:

<div class="parent">
     <div class="child"></div>
     <div class="child"></div>
     <div class="child"></div>
</div>
<div class="parent">
     <div class="child"></div>
     <div class="child"></div>
     <div class="child"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

Der*_*sed 10

哇,好挑战的问题=)

while(($children = $(':not(.parent)>.child:lt(3)')).length) {
    $children
        .parent()
        .append(
            $('<div class="parent"></div>')
                .append($children.remove())
    );
}
Run Code Online (Sandbox Code Playgroud)

编辑:不知道wrapAll方法,所以:

while(($children = $(':not(.parent)>.child:lt(3)')).length) {
    $children.wrapAll($('<div class="parent"></div>'));
}
Run Code Online (Sandbox Code Playgroud)


Fel*_*ing 8

这应该这样做:

var $children = $('.child');
for(var i = 0, l = $children.length; i < l; i += 3) {
    $children.slice(i, i+3).wrapAll('<div class="parent"></div>');
}
Run Code Online (Sandbox Code Playgroud)

DEMO