2010-08-30 17 views
6

Mam ul z liczbą li wewnątrz. Wszystkie li mają identyfikator "#kategoria", ale różne klasy (np. ".tools", ".milk", ".apple").jQuery, znajdź nazwę klasy li (wewnątrz ul)

Korzystanie z jQuery. Ja:

$("li#category").click(function(){ some_other_thing (....)}); 

teraz muszę umieścić class "nazwa" a Li - (ciąg wręcz) wewnątrz some_other_thing() zamiast funkcji ....

Jak można to zrobić?

Odpowiedz

3

Pamiętaj, że id musi być wyjątkowy! Sugerujesz, że każdy element li ma ten sam id. Może chcesz zastąpić go class, np .:

<ul> 
    <li class="category tools" /> 
    <li class="category milk" /> 
</ul> 

Następnie wybierz z:

$('li.category').click(function(){}); 
0

Jeśli dobrze rozumiem to poprawnie, problem jest, że nie można mieć wiele li chodzi z tym samym identyfikatorem. Możesz mieć tylko jeden unikalny identyfikator na stronę. Prawdopodobnie chcesz zmienić identyfikator na klasę. Więc będziesz miał coś w tym stylu.
<ul>
<li class="category milK">Chocolate</li>
<li class="category tool">Big Hammer</li>
</ul>

Następnie można wyszukiwać z $("li.category").click(function() {....});

4

identyfikatorami muszą być unikalne w dokumencie, więc posiadające wiele <li> elementy z identyfikatorem "category" jest nieprawidłowy. Zmień to na atrybut klasy lub danych lub coś innego. Lub po prostu przypisz klasę rodzicowi <ul>, abyś mógł łatwo odzyskać wszystkie pliki wewnątrz niej.

<ul id="categories"> 
    <li class="tools"> 
    <li class="milk"> 
</ul> 

Pobierz wszystkie li's i przypisz obsługę kliknięcia.

$('#categories li').click(function() { 
    var className = $(this).attr('class'); 
    some_other_thing(className); 
}); 
1

Twoje elementy li muszą mieć unikalne identyfikatory. Po robią, można wybrać wszystkie dzieci LI ul z ">" Operator:

var ul_elem = $("#id_of_ul"); 
$("> li", ul_elem).click(...); 

LUB

$("#id_of_ul > li").click(...); 

LUB

$("ul.classname > li").click(...); 
Powiązane problemy