2009-09-24 11 views
8

Potrzebujesz jeszcze raz pomocy. Powiedzmy, że mam nieuporządkowaną listę i chcę, aby zawsze zawierała parzystą liczbę li. Jak mogę użyć jQuery do zliczenia liczby li i dodać jeden pusty na końcu, jeśli liczba jest nieparzysta?jQuery - jak policzyć liczbę li i dodać jedną, jeśli liczba jest nieparzysta?

Jeśli zastanawiasz się, dlaczego mam menu rozwijane, gdzie "ul li ul" jest dwa razy szersza niż "ul li ul li", więc lista rozwijana li w 2 kolumnach. Więc, wyłącznie dla efektów wizualnych, miło byłoby zawsze mieć równą ilość, nawet jeśli jedna jest pusta.

Cheers

Odpowiedz

10

Spróbuj tego:

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

Należy dodać jeden element listy do każdej listy nieuporządkowanej z nieparzystą liczba pozycji na liście.

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

zrobiłbym to tak:

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

ul # mój-ul jest zbędny i wolniejszy niż # my-ul. –

+0

jest zbędny, ale IMHO bardziej czytelny. Czy masz link wyjaśniający, dlaczego jest wolniejszy? Dzięki –

+1

identyfikatory są unikatowe. Kiedy wykonujesz ul # my-ul, wywołujesz wyszukiwanie we wszystkich elementach, szukając id. Znajdę link za minutę. –

Powiązane problemy