I have multiple divs like this:
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="large"></div>
<div class="large"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
I want to select every 4 .small divs to wrap in another div so it’s like this:
<div class="box">
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
</div>
As you can see from the first example, there can be more than 4 adjacent ones, but I still want to group every 4 .small divs.
Any idea would be much appreciated. Thanks!
Here is how I’ve done it in the past.
jsFiddle.
I chunk the selected elements into chunks of a desired length and then call
wrapAll()on the sub-selection.Just for the hell of it, here is how you’d do it without jQuery…
jsFiddle.
Of course, for old browsers that don’t support
document.querySelectorAll()ordocument.getElementsByClassName(), replace the element selecting code with…jsFiddle.