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
4
A
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.