Maison  >  Article  >  interface Web  >  Interprétation du code source du sélecteur jQuery (7) : elementMatcher function_jquery

Interprétation du code source du sélecteur jQuery (7) : elementMatcher function_jquery

WBOY
WBOYoriginal
2016-05-16 16:06:571077parcourir

Pour comprendre le processus d'exécution de la compilation de Sizzle, vous devez d'abord comprendre les fonctions, les variables clés et les fonctions de chaque sous-programme impliqué. J'expliquerai le code de compilation de la version jQuery-1.10.2 un par un. t'aider.

elementMatcher(matchers)

1.Code source

Copier le code Le code est le suivant :

fonction elementMatcher (matchers) {
return matchers.length > 1 ? fonction (elem, contexte, xml) {
var i = matchers.length;
tandis que (i--) {
if (!matchers[i](elem, context, xml)) {
Renvoie faux ;
>
>
renvoie vrai ;
} : matchers[0];
>

2. Fonction

Cette fonction renvoie une fonction pour déterminer si l'élément entrant correspond aux correspondants du tableau de fonctions d'exécution correspondant. Si ce n'est pas le cas, elle renvoie false, sinon elle renvoie true.

Si les matchers n'ont qu'un seul élément, renvoyez l'élément lui-même, sinon renvoyez une nouvelle fonction - la fonction function(elem, context, xml) dans le code.

L'effet de la fonction de retour est quelque peu similaire à context.filter(selectors). Bien sûr, le résultat ne renvoie que vrai ou faux, pas un objet jQuery.

3. Paramètres
matchers - tableau, chaque élément est une fonction d'exécution de matcher non pseudo-classe. Par exemple : pendant le processus d'exécution réel, div.map span:lt(10), les fonctions d'exécution correspondantes de div et map seront transmises à la fonction elementMatcher en tant que deux éléments des matchers pour filtrer si le nœud parent du nœud span répond aux exigences.

4. Fonction de retour

4.1 Si les matchers ont plus d'un élément, la fonction suivante sera renvoyée :

Copier le code Le code est le suivant :

fonction (elem, contexte, xml) {
var i = matchers.length;
tandis que (i--) {
if (!matchers[i](elem, context, xml)) {
Renvoie faux ;
>
>
renvoie vrai ;
>

4.1.1 Fonction
Les matchers sont appelés séquentiellement du dernier élément au premier élément pour déterminer si les nœuds d'élément entrants répondent aux exigences. True est renvoyé si tous sont remplis, sinon false est renvoyé.

4.1.2 Paramètres

elem - l'élément de nœud unique à vérifier.

context - le nœud de contexte qui effectue la correspondance complète de la chaîne de sélection, la plupart du temps, il est inutile.

xml——L'objet de recherche actuel est-il un document HTML ou XML ? S'il s'agit de HTML, le paramètre xml est faux.

4.2 Si les matchers n'ont qu'un seul élément, renvoyez l'élément lui-même.
4.2.1 Fonction
Vérifie si l'élément entrant correspond au sélecteur, renvoie vrai s'il correspond, sinon renvoie faux.

4.2.2 Paramètres
Identique à la description du paramètre 4.1.2.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn