2009-09-24 8 views
8

Brauchen Sie noch ein wenig Hilfe. Angenommen, ich habe eine ungeordnete Liste, und ich möchte, dass sie immer eine gerade Anzahl von Zeilen enthält. Wie kann ich jQuery verwenden, um die Anzahl der li zu zählen, und am Ende eine leere hinzufügen, wenn die Zahl ungerade ist?jQuery - Wie zählt man die Anzahl der li's und addiert eins wenn die Zahl ungerade ist?

Wenn Sie sich fragen, warum, habe ich eine Dropdown-Liste, wo die "ul li ul" ist doppelt so breit wie die "ul li ul li", so dass die Dropdown li in zwei Spalten angezeigt werden. Also, rein für visuelle Effekte, wäre es nett, immer eine gerade Menge zu haben, selbst wenn eine leer ist.

Prost

Antwort

10

Try this:

$("ul").each(function() { 
    var elem = $(this); 
    if (elem.children("li").length % 2 != 0) { 
     elem.append("<li></li>"); 
    } 
}); 

sollte jede ungeordnete Liste ein Listenelement mit einer ungeraden Dieses Add Anzahl der Listenelemente.

3
if($('#myUnorderedList > li').size() % 2 != 0) 
{ 
    //add an extra li somewhere 
    $('#myUnorderedList').append('<li>content</li>'); 
} 
4

ich es so tun würde:

if ($('ul#my-ul > li').length %2 != 0){ 
    $('ul#my-ul').append('<li></li>'); 
} 
+0

ul # my-ul ist redundant und langsamer als # my-ul. –

+0

es ist redundant, aber IMHO besser lesbar. Haben Sie einen Link, der erklärt, warum es langsamer ist? Danke –

+1

Ids sind einzigartig. Wenn Sie ul # my-ul ausführen, rufen Sie eine Suche über alle Elemente auf und suchen nach der ID. Ich werde in einer Minute einen Link finden. –

Verwandte Themen