Как-то так будет работать:
var elems = $(".content div.item");
for(var i = 0; i < elems.length; i+=2) {
elems.slice(i, i+2).wrapAll("<div class='wrapper'></div>");
}
Вы можете проверить это здесь , для этого нужно захватить все элементы .item
<div>
и каждыйпара 2 оборачивает их, если останутся какие-либо (последний единственный), он будет обернут сам по себе.
Или, давайте сделаем его многоразовым, как плагин:
jQuery.fn.wrapSet = function (interval, wrapElem) {
for(var i = 0; i < this.length; i+=interval) {
this.slice(i, i+interval).wrapAll(wrapElem);
}
return this;
};
Тогда вы можете назвать это так:
$(".content div.item").wrapSet(2, "<div class='wrapper'></div>");
Вы можете попробовать эту версию здесь .