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"/>');
    }
});