2010-01-06 3 views
3

У меня есть многоуровневое меню, как это:JQuery добавить класс к определенным элементам

<ul> 
    <li>item 1 
    <ul> 
     <li>item 1.1</li> 
     <li>item 1.2</li> 
    </ul> 
    </li> 
    <li>item 2</li> 
    <li>item 3 
    <ul> 
     <li>item 3.1</li> 
     <li>item 3.2</li> 
    </ul> 
    </li> 
    <li>item 4</li> 
</ul> 

В JQuery У меня есть

$("#divId ul li:odd").addClass("blue"); 
$("#divId ul li:even").addClass("green"); 

Проблема заключается в том, что JQuery добавляет класс для всех списков. Я хотел JQuery просто добавить класс к первому уровню (уль> li.class), а не внутренний Чайлдсу (UL> LI> уль> li.class)

Благодарности

+1

Yeeees ... а потом? – jensgram

+0

добавить класс к этому элементу? – Anurag

+6

У вас есть многоуровневое меню, например * THAT *? Продолжайте! Может быть, с вопросом? – zombat

ответ

3

Это должно работать:

$("#divId ul:first > li:odd").addClass("blue"); 
$("#divId ul:first > li:even").addClass("green"); 

Это добавит классы для детей первого уль тега, найденного в DIVID.

+0

Это прекрасно работает. Благодаря! –

0

Может ли вы, пожалуйста, , дайте больше информации о вашем случае. Из того, что я вижу, вам нужен простой выбор и добавление класса. Вы можете найти информацию о jquery selectors here и addClass method here

1

Я собираюсь использовать предположения здесь, и вы знаете, что они говорят о них;)

Если вы хотите добавить определенные классы для всех ЛУ пунктов затем :

$('ul').addClass('class-addition'); 

и вы можете упорядочить элементы списка таким же образом.

Если вы хотите добавить классы ул внутри литий вы можете использовать:

$('li > ul').addClass('class-addition'); 

используя родительские> дочерние селекторы.

Я бы посмотрел документацию селекторов, предоставленную Branislav, чтобы найти именно то, что вы хотите, и использовать firebug для проверки результатов.

2

вы могли бы попробовать:

$("#divId ul li:not(#divId ul li ul li):odd").addClass("blue"); 
$("#divId ul li:not(#divId ul li ul li):even").addClass("green"); 
+0

Это тоже работает! Большое спасибо! –

Смежные вопросы