Разбить элементы списка

Рейтинг: 3Ответов: 1Опубликовано: 23.10.2014

Как сделать из длинного списка (li) списки (ul) по 10 элементов li.
К примеру, есть один список, в котором 30 элементов:

<div class="list">
    <ul>
        <li></li>
        ...
        <li></li>
    </ul>
</div>

На выходе нужно получить 3 списка по 10 элементов вместо одного большого:

<div class="list">
    <ul>
        <li></li>
        ...
        <li></li>
    </ul>

    <ul>
        <li></li>
        ...
        <li></li>
    </ul>

    <ul>
        <li></li>
        ...
        <li></li>
    </ul>
</div>

Я было нашёл функцию, которая это делает:

$('.list').each(function() { 
    var group;
    while((group = $(this).find('li:lt(10)').remove()).length) {
        $(this).append($('<ul/>').append(group));
    }
});

Да, обязательно, классов list будет несколько, поэтому для каждого нужно сделать обработку, и тут проблема - попадаем в рекурсию.
Если написать:

$('body').append($('<ul/>').append(group));

то всё нормально, но ведь нужно "переделать" исходный список, а не вставлять его в body. Подскажите, как это сделать?

Ответы