Hallo,
als ik met jQuery een item van een list verwijderen, en er zijn geen list items meer over (dus een list zonder children), dan werkt $("ul:empty").remove() niet meer, omdat ul.remove() niet de spaties voor het element weg haalt. Is hier een optie voor om spaties en enters niet mee te tellen?
Ik begrijp het niet helemaal. Wat wil je? Er zijn geen li's meer, maar wat wil je dan nog verwijderen?
Misschien dat je jouw probleem ook kan oplossen door te tellen.
$('ul').children().size();
Hiermee tel je het aantal children.
Dan kun je iets als het volgende doen
var aantal = $('ul').children().size();
if(aantal == 0)
{
actie
}
else
{
andere actie
}
Optie twee: jQuery extenden met een no-children selector:
jQuery.extend(
jQuery.expr[ ":" ],
{
nochildren : function (a) {
// a is een DOM object
// deze functie geeft TRUE terug als er minder dan 1 child zitten - anders false (niet leeg)
size = jQuery(a).children().size();
return size < 1;
}
}
);