Я предполагаю, что вам может понадобиться сделать это для другого количества предметов. Мое решение включает цикл while. Отрегулируйте число в условии while () и в селекторе для: lt (2), чтобы захватить другое количество элементов списка.
<ul id="divide">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<script type="text/javascript">
while ($('ul#divide > li[class!="li_group"]:lt(2)').length >= 1) {
$('ul#divide > li[class!="li_group"]:lt(2)')
.wrapAll('<li class="li_group"><ul></ul></li>');
}
</script>
Во время отладки я использовал этот CSS, чтобы убедиться, что я создаю правильный HTML.
<style type="text/css">
ul { border: 1px solid #f00; }
.li_group { border: 1px solid #00f; }
</style>