Удаление пустых UL - PullRequest
       17

Удаление пустых UL

2 голосов
/ 31 августа 2011

Мне нужно удалить пустые UL и те LI, которые содержат пустые UL, поэтому я использую этот скрипт

    $("ul").each(function() {
            var elem = $(this);
            if (elem.children().length == 0) {
                elem.parent().remove();
            }
        }
    );

После запуска скрипта может получиться, что в результате я получу пустые UL, поэтому мне нужно снова запустить скрипт. Можно ли как-то зациклить его, пока не будут удалены все пустые UL?

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Я думаю, что это должно работать для вас:

while($('ul:empty, li:empty').length) {
    $('ul:empty, li:empty').remove();
}       

Пример JsBin

0 голосов
/ 31 августа 2011

Возможно, я не до конца понимаю ваш вопрос, но если вам нужно перезапустить команду, вы можете создать функцию:

var clearUls = function(){
    $("ul").each(function() {
            var elem = $(this);
            if (elem.children().length == 0) {
                elem.parent().remove();
            }
        }
    );
}

И затем вы можете вызывать ее столько раз, сколько захотите.

...