2010-04-09 6 views
4

Je veux rechercher tous les éléments de la classe needle dans tous les éléments retournés par jQuery('.haystack') et j'ai essayé jQuery('.haystack .needle'), mais cela ne semble pas ramasser le cas où un élément a les deux classes. Y a-t-il un sélecteur qui va le faire?Descendant ou auto-sélecteur dans jQuery

Répondre

5

Essayez combining selectors:

jQuery('.haystack.needle, .haystack .needle'); 

Cela permet de sélectionner tous les .haystack s qui sont également .needle s et toute .needle qui est un descendant d'un .haystack, que je pense est exactement ce que vous avez demandé :-)

1

Vous faites cela sans espace là-dedans, comme ceci:

jQuery('.haystack.needle') 

L'alternative est:

jQuery('.haystack').filter('.needle') 

Avec l'espace, il cherche enfants de ces .haystack éléments avec .needle, sans l'espace, vous faites correspondre les mêmes éléments, mais en disant qu'ils doivent avoir les deux classes pour correspondre maintenant. C'est également ce que fait .filter(), il réduit encore les correspondances définies pour les éléments correspondant également au sélecteur que vous y passez.

Questions connexes