web-dev-qa-db-fra.com

Classe jQuery dans le sélecteur de classe

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

comment puis-je trouver le div intérieur ici?

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

va juste chercher un div avec class="outer inner", est-ce correct?

alors j'ai essayé

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

mais cela ne semble pas fonctionner.

Modifier:

Je sais que c'est facile à trouver avec quelque chose comme

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

mais je cherche le type de syntaxe de sélecteur unique qui se lit mieux à mon humble avis.

34
fearofawhackplanet

va juste chercher un div avec class = "external inner", est-ce correct?

Non, '.outer .inner' recherchera tous les éléments avec la classe .interne qui ont également un élément avec la classe .externe comme ancêtre. '.outer.inner' (pas d'espace) donnerait les résultats auxquels vous pensez.

'.outer > .inner' recherchera les enfants immédiats d'un élément avec la classe . externe pour les éléments avec la classe . interne.

Tous les deux '.outer .inner' et '.outer > .inner' devrait fonctionner pour votre exemple, bien que les sélecteurs soient fondamentalement différents et vous devez vous en méfier.

77
Andy E

Pour ce html:

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

Ce sélecteur devrait fonctionner:

$('.outer > .inner')
30
Sarfraz