2012-05-03 2 views
0

у меня есть дум дерево, как это:Как найти элемент на основе двух селекторов?

ul #navigation 
    li .active 
    ul 
     li.active_li 
     li 
     li 
    /ul 
    li 
    ul 
     li.active_li 
     li 
     li 
    /ul 
/ul 

я хотел бы найти li с классом active_li внутри ul принадлежащего li, который имеет класс active. :)

, как мы видим, есть 2 li с классом active_li. я хочу только первый один

что-то вроде: $('#navigation').find('li.active').find('li.active)li').doSomething();

этот селектор не похоже на работу

какие-нибудь идеи?

+0

'jQuery' имеет ту же концепцию потомок/предка селекторов как CSS .. это будет работать: $ («# навигация li.active_li») ; Может ли это быть родительским и подчеркивающим? –

+0

@tandu: Я думаю, можно с уверенностью сказать, что любой селектор CSS будет работать как селектор jQuery. – Blender

+0

@Blender это не .. jQuery не имеет понятия о некоторых селекторах псевдокласса CSS, не поддерживает медиа-запросы и т. Д. (Не то, что они имеют смысл), и не поддерживает селекторов CSS 4 (которые являются неполными и не используется). CSS, безусловно, несовместим с селекторами jQuery - не то, что вы сказали об этом. –

ответ

2

Попробуйте этот селектор:

$('#navigation li.active ul li.active_li') 
         ^^ 
          \_ You can get rid of this, as <li> elements 
          exist only within <ul> elements. 
0

Вы можете использовать

$('#navigation li.active li.active_li').each(function(){ 

}); 

и флаг функция отключения после запуска первого.

Или если вы просто хотите, чтобы первый выбранный:

$('#navigation li.active li.active_li').first(); 
Смежные вопросы