3

Как сделать из длинного списка (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. Подскажите, как это сделать?

1 ответ 1

1

Может, попробуешь http://neolot.com/narabotki/autocolumnlist-jquery-plugin-dlya-razdeleniya-spiskov-na-kolonki

1
  • Спасибо, то, что нужно. Правда, хотелось получить модификацию функции выше.
    – lexpex
    23 окт 2014 в 20:32

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.