2010-08-30 2 views
6

У меня есть ul с количеством li внутри. Все li имеют идентификатор «# category», но разные классы (например, «.tools», «.milk», «.apple»).jQuery, find li имя класса (внутри ul)

Использование jQuery. Я:

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

теперь я должен положить класса «называют» Ли - (строка в самом деле) внутри some_other_thing() функцию вместо ....

Как это можно сделать?

ответ

3

Опасайтесь, что id должен быть уникальным! Вы предполагаете, что каждый элемент li имеет то же самое значение id. Вы можете заменить его class, например .:

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

Затем выберите с:

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

Если я понимаю правильно, то проблема заключается в том, что вы не можете иметь несколько Ли с тем же ID. У вас может быть только один уникальный идентификатор на странице. Вероятно, вам нужно изменить идентификатор на класс. Таким образом, у вас будет что-то в этом роде.
<ul>
<li class="category milK">Chocolate</li>
<li class="category tool">Big Hammer</li>
</ul>

Тогда вы можете искать с $("li.category").click(function() {....});

4

идентификаторов должны быть уникальными в документе, так что наличие нескольких <li> элементов с идентификатором "category" является недействительным. Измените это на класс или атрибут данных или что-то еще. Или просто назначьте класс родительскому <ul>, чтобы вы могли легко получить все li внутри него.

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

Получить все li и назначить обработчик кликов.

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

Элементы li должны иметь уникальные идентификаторы. После того, как они это делают, вы можете выбрать все Lī детей ул с ">" оператора:

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

ИЛИ

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

ИЛИ

$("ul.classname > li").click(...); 
Смежные вопросы