Heim >Web-Frontend >js-Tutorial >Interpretation des jQuery-Selektor-Quellcodes (7): elementMatcher function_jquery

Interpretation des jQuery-Selektor-Quellcodes (7): elementMatcher function_jquery

WBOY
WBOYOriginal
2016-05-16 16:06:571107Durchsuche

Um den Kompilierungsausführungsprozess von Sizzle zu verstehen, müssen Sie zunächst die Funktionen und Schlüsselvariablen und Funktionen jeder beteiligten Unterroutine verstehen. Ich hoffe, dass dies der Fall ist Dir helfen.

elementMatcher(matcher)

1. Quellcode

Code kopieren Der Code lautet wie folgt:

Funktion elementMatcher(matchers) {
return matchers.length > 1 ? function(elem, context, xml) {
var i = matchers.length;
while (i--) {
if (!matchers[i](elem, context, xml)) {
Gibt false zurück;
}
}
return true;
} : matchers[0];
}

2. Funktion

Diese Funktion gibt eine Funktion zurück, um zu bestimmen, ob das eingehende Element mit den übereinstimmenden Array-Matchern der Ausführungsfunktion übereinstimmt. Wenn dies nicht der Fall ist, gibt sie „false“ zurück, andernfalls gibt sie „true“ zurück.

Wenn Matcher nur ein Element haben, geben Sie das Element selbst zurück, andernfalls geben Sie eine neue Funktion zurück – die Funktion function(elem, context, xml) im Code.

Der Effekt der Rückgabefunktion ähnelt in gewisser Weise dem von context.filter(selectors). Natürlich gibt das Ergebnis nur true oder false zurück, kein jQuery-Objekt.

3. Parameter
Matcher – Array, jedes Element ist eine Nicht-Pseudoklassen-Matcher-Ausführungsfunktion. Beispiel: Während des eigentlichen Ausführungsprozesses von div.map span:lt(10) werden die übereinstimmenden Ausführungsfunktionen von div und map als zwei Elemente von Matchern an die elementMatcher-Funktion übergeben, um zu filtern, ob der übergeordnete Knoten des Span-Knotens ist erfüllt die Anforderungen.

4. Return-Funktion

4.1 Wenn matchers mehr als ein Element hat, wird die folgende Funktion zurückgegeben:

Code kopieren Der Code lautet wie folgt:

function(elem, context, xml) {
var i = matchers.length;
while (i--) {
if (!matchers[i](elem, context, xml)) {
Gibt false zurück;
}
}
return true;
}

4.1.1 Funktion
Matcher werden nacheinander vom letzten Element bis zum ersten Element aufgerufen, um zu prüfen, ob die eingehenden Elem-Knoten die Anforderungen erfüllen. Wenn alle erfüllt sind, wird „True“ zurückgegeben, andernfalls wird „False“ zurückgegeben.

4.1.2 Parameter

elem – das einzelne Knotenelement, das überprüft werden soll.

Kontext – der Kontextknoten, der den gesamten Selektor-String-Abgleich durchführt, meistens ist er nutzlos.

xml – Ist das aktuelle Suchobjekt ein HTML- oder XML-Dokument? Wenn es HTML ist, ist der XML-Parameter falsch.

4.2 Wenn matchers nur 1 Element hat, geben Sie das Element selbst zurück.
4.2.1 Funktion
Überprüft, ob das eingehende Elem mit dem Selektor übereinstimmt, gibt true zurück, wenn es übereinstimmt, andernfalls gibt es false zurück.

4.2.2 Parameter
Wie 4.1.2 Parameterbeschreibung.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn