Klasa jQuery w selektorze klas

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

Jak znaleźć wewnętrzny div tutaj?

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

Będzie szukał div z class="outer inner", czy to prawda?

Więc próbowałem

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

Ale to chyba nie działa.

Edit:

Wiem, że łatwo go znaleźć z czymś takim

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

Ale szukam takiej składni selektora, która lepiej czyta imho.

Author: fearofawhackplanet, 2010-09-22

2 answers

Będzie szukał div z class= "outer inner", czy to prawda?

Nie, '.outer .inner' będzie szukał wszystkich elementów z .Klasa wewnętrzna , która również posiada element z .zewnętrzna Klasa jako przodek. '.outer.inner' (Brak spacji) dałoby wyniki, o których myślisz.

'.outer > .inner' będzie szukał bezpośrednich dzieci elementu z .Klasa zewnętrzna dla elementów z .Klasa wewnętrzna .

Zarówno '.outer .inner' jak i '.outer > .inner' powinno działać na twój przykład, chociaż selektory są zasadniczo różne i powinieneś być ostrożny.

 65
Author: Andy E,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 08:37:53

Dla tego html:

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

Ten selektor powinien działać:

$('.outer > .inner')
 26
Author: Sarfraz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 08:31:08