Класс jQuery в селекторе классов - PullRequest
33 голосов
/ 22 сентября 2010
<div class="outer">
     <div class="inner"></div>
</div>

как мне найти внутренний div здесь?

$container.find('.outer .inner')

просто ищет div с class="outer inner", это правильно?

, поэтому я попытался

$container.find('.outer > .inner')

, но это, похоже, не работает.

Редактировать:

Я знаю, что его легко найти с чем-то вроде

$container.find('.outer').find('.inner')

, но я ищу тот синтаксис с одним селектором, который лучше читается imho.

Ответы [ 2 ]

75 голосов
/ 22 сентября 2010

просто будет искать div с class = "external inner", это правильно?

Нет, '.outer .inner' будет искать все элементы с .inner класс, который также имеет элемент с классом .outer в качестве предка.'.outer.inner' (без пробела) даст результаты, о которых вы думаете.

'.outer > .inner' будет искать непосредственных потомков элемента с классом .outer для элементов с .inner class.

И '.outer .inner', и '.outer > .inner' должны работать для вашего примера, хотя селекторы в корне различны, и вам следует опасаться этого.

28 голосов
/ 22 сентября 2010

Для этого HTML:

<div class="outer">
     <div class="inner"></div>
</div>

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

$('.outer > .inner')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...