jQuery wrapAll in Blocks
By Adam Schwartz (http://polymath.mit.edu). Made for Stack Overflow question http://stackoverflow.com/questions/3328208/jquery-how-to-wrap-div-around-multiple-of-the-same-class-elements.
HTML
<div class="entry">Content</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div>Skip in wrap</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div>Skip in wrap</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
<div class="entry">Content</div>
CSS
.wrap { border: 1px solid black; }
JavaScript
$(function(){
var i, wrap, wrap_number = 0;
$('div').each(function(){
var div = $(this);
if (div.is('.entry')) {
wrap = 'entry_wrap_' + wrap_number;
div.addClass(wrap);
} else {
wrap_number++;
}
});
for (i = 0; i <= wrap_number; i++) {
wrap= 'entry_wrap_' + i;
$('.' + wrap).wrapAll('<div class="wrap"/>');
}
});