In diesem Artikel wird die Methode „removeClass()“ zur Interpretation des jQuery-Quellcodes detaillierter analysiert. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Die Methode „removeClass()“ unterscheidet sich nicht wesentlich von „addClass()“. Werfen wir einen Blick darauf:
jQuery.fn.extend({
RemoveClass: Funktion(Wert) {
var-Klassen, elem, cur, clazz, j, finalValue,
i = 0,
len = this.length,
continue = arguments.length === 0 || typeof value === "string" && value;
if ( jQuery.isFunction( value ) ) {
return this.each(function( j ) {
//Hier ist der Klassenname, der von der Funktion zurückgegeben wird, die Sie zum Entfernen des Klassennamens übergeben haben, und RemoveClass selbst wird erneut aufgerufen.
jQuery( this ).removeClass( value.call( this, j, this.className ) );
});
}
if ( fortfahren ) {
classes = ( value || "" ).match( rnotwhite ) ||
für ( ; i < len; i ) {
elem = this[i];
Cur = elem.nodeType === 1 && ( elem.className ?
(" " elem.className " " ).replace( rclass, " " ) :
""
);
Wenn (cur) {
j = 0;
While ((Clazz = Klassen [J]) {
//Der Unterschied liegt in der while-Schleife unten. Wenn das aktuelle DOM-Element abgerufen wird und den Klassennamen enthält, den Sie entfernen möchten, wird „replace“ verwendet, um ihn durch „ „
zu ersetzen
While (Cur.indexof ("Clazz") & GT; = 0) {
Cur = cur.replace( " " clazz " ", " " );
}
}
//Das Folgende ist auch einer der Hauptunterschiede, um festzustellen, ob Sie den Wert des zu entfernenden Klassennamens übergeben haben. Wenn nicht, finalValue=", wenn das DOM-Element zu diesem Zeitpunkt einen Klassennamen hat, das heißt, die Bedingung wahr ist, werden alle Klassennamen des DOM-Elements entfernt;
// Wenn übergeben, entfernen Sie den passenden Klassennamen. Nach dem Entfernen werden die nicht entfernten Klassennamen in cur gespleißt, die Leerzeichen am linken und rechten Ende werden entfernt und der Klassenname des DOM-Elements lautet auf cur einstellen.
finalValue = value ? jQuery.trim( cur ) : "";
If ( elem.className !== finalValue ) {
Zu
}
}
}
}
gib dies zurück;
}
});
Ich hoffe, dass dieser Artikel für alle bei der jQuery-Programmierung hilfreich sein wird.