2010-07-08 5 views
4

Я пытаюсь сделать что-то вроде следующего в JQueryНайти класс внутри класса с JQuery селекторы

$('.container').siblings('.outerClass > .innerClass')

где я ищу:

<div class="container"></div> 

<div class="outerClass"> 
    <div class="innerClass"> 
     find me! 
    </div> 
</div> 

Я не могу получить синтаксис справа.

+0

'.innerClass' не Sibling к' .container', поэтому он терпит неудачу. Ответ @Felix Kling должен покрыть вас. –

ответ

8

И еще один (но это должно работать) (если вы хотите, чтобы получить элемент с классом innerClass):

$('.container').siblings('.outerClass').children('.innerClass') 
0

Есть проблема ommitting селектор контейнера, и только с помощью

$('.outerClass > .innerClass') 

или, возможно (если вы не хотите, чтобы требовать внутренний DIV быть прямой ребенок)

$('.outerClass .innerClass') 
+0

Да, к сожалению, мне нужна часть братьев-ситцов. Я пробовал оба из них, и я не думаю, что это сработало (если только я не ошибся, вычисляя html). – fearofawhackplanet

+0

Это не работает, как вы ожидаете, – th3an0maly

0

Вы также можете сделать это непосредственно выбрать необходимые элементы

$(".outerClass").children(".innerClass").click(function() { 
//Do your stuff 
}); 
0
$('.container').siblings('.outerClass:has(> .innerClass)') 

Чтобы объяснить, почему; .outerClass > .innerClass - это селектор, который выбирает элемент с классом innerClass, а не внешний класс. Чтобы выбрать элемент, который имеет что-то конкретное в нем, вы используете селектор :has, который принимает селектор в качестве аргумента.