Existe-t-il un moyen de combiner un sélecteur multiple et un filtre de base dans une même requête?Combiner un sélecteur multiple avec un filtre
Par exemple ...
var jq = $(someElement);
// Want to find the first following sibling node which has either classA or classB.
// This imaginary jquery does not quite work.
jq.nextAll("(.classA, .classB):first")
// This works. But I wonder if I can achieve the same result with just one query.
jq.nextAll(".classA, classB)").filter(":first")
Merci pour la réponse, Andy. S'il y a plusieurs éléments correspondant à la première requête, est-ce que jquery trouve toutes les correspondances et choisit la première? Je pensais que le faire en une seule requête permettrait à jquery de savoir que je ne suis intéressé que par le premier élément, de sorte que jquery arrêtera de chercher n'importe quelle autre correspondance - rendant la requête plus rapide. Peut être? Peut être pas? – Kei
C'est intéressant. J'ai essayé de regarder à travers la source jQuery mais pas assez bien pour comprendre exactement ce qui se passe. Ce que j'ai trouvé, c'est que la première fonction est juste un alias de la fonction eq, qui appelle 'this.slice (i, + i + 1)' où 'this' est le résultat. Donc, je suppose que peu importe comment vous parlez de ces types de sélecteurs compliqués, il saisit tous les résultats, puis les filtrer. Ce n'est que spéculation de ce que je pouvais voir si. Je ne sais vraiment pas comment ça fonctionne. –
@Kei Il n'y a aucun moyen de dire à jQuery de s'arrêter quand il trouve le premier match pour le moment. Voir: http://stackoverflow.com/questions/3950888 –