Heim >Web-Frontend >js-Tutorial >Analyse der Methode „removeClass()' des jQuery-Quellcodes „interpretation_jquery'.

Analyse der Methode „removeClass()' des jQuery-Quellcodes „interpretation_jquery'.

WBOY
WBOYOriginal
2016-05-16 16:13:261380Durchsuche

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:

Code kopieren Der Code lautet wie folgt:
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.
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