Heim Web-Frontend js-Tutorial Detaillierte Erklärung des Unterschieds zwischen $(selector).each() und $.each() von Jquery

Detaillierte Erklärung des Unterschieds zwischen $(selector).each() und $.each() von Jquery

Jun 16, 2017 pm 04:20 PM
jquery selector 区别

Wir haben alle die Each-Funktion in Jqurey verwendet und wissen alle, dass es zwei Möglichkeiten gibt, Each() aufzurufen: Eine besteht darin, über $.each() aufzurufen, die andere über $(selector). every() , also was ist der Unterschied zwischen ihnen?

Wenn Sie sich den Jquery-Quellcode ansehen, werden Sie wissen, dass $.each() die Kernimplementierung ist und $(selector).each() der aufgerufene $.each() ist. Lassen Sie uns zunächst $ analysieren .each( ) Quellcode (unten):

Die Funktion „each“ (obj, callback, args) empfängt 3 Parameter: obj – das Objekt oder Array, das durchlaufen werden soll, callback – die Callback-Funktion zu durchlaufen und auszuführen , args – das von Ihnen angegebene Array (ignorieren Sie es zuerst).

Die Implementierung jeder Methode in jQuery verwendet die Aufrufmethode. Erstens ist der Effekt des Arrays bei jedem gleich.

Sie können die Richtung per Anruf ändern.

var testCall = function(obj, callback){
    callback.call(obj, 1);
}
Nach dem Login kopieren

testCall(["1. Ändern Sie den Zeiger davon", "2. Die Funktion kann intern dadurch aufgerufen werden"], function(index){ //Mit der Aufrufmethode ist dies möglich Der Zugriff erfolgt direkt über das Objekt, das als erster Parameter des Aufrufs übergeben wurde.
Die Funktion kann über this aufgerufen werden Verwenden Sie nicht die Aufrufmethode. Diese wird nicht verwendet.

test(["1. Ändern Sie den Zeiger davon", "2. Die Funktion kann dadurch innerhalb der Funktion aufgerufen werden"], function(index){ //Aufrufmethode nicht verwenden , verwenden Sie dies nicht.

warning(this[index]); //undefiniert});
var test = function(obj, callback){
    callback(obj, 1);
}
Nach dem Login kopieren


jQuery.each sollte der durch Aufruf geänderte Punkt sein;
Ich habe mir den jQuery-Quellcode nicht angesehen. Verwenden Sie callback.call, um ihn zu kopieren. Die Implementierungsmethode sollte dieselbe sein.

Hinweis: Wenn der Anruf nicht verwendet wird, kann er nicht in der Rückruffunktion verwendet werden.
$.each([1,2,3], function (index, item) {    console.log({index:index,value:item,_this:this});
});/*
  Object {index: 0, value: 1, _this: Number}
  Object {index: 1, value: 2, _this: Number}
  Object {index: 2, value: 3, _this: Number}
*/
Nach dem Login kopieren

1. Der Fall ohne Argumente

var each = function(arr, callback){
  for( var index = 0 ; index < arr.length ; index++ ){
    callback.call(arr[index], index, arr[index]);
  }
}
each([1,2,3], function (index, item) {
    console.log({index:index,value:item,_this:this});
});/*
  Object {index: 0, value: 1, _this: Number}
  Object {index: 1, value: 2, _this: Number}
  Object {index: 2, value: 3, _this: Number}
*/
Nach dem Login kopieren
Im Allgemeinen werden Argumente nicht häufig verwendet, daher werden wir die Situation, in der (Argumente) wahr sind, nicht diskutieren, d grau im Codeteil, dies ist auch der Kernteil der Funktion every()

Wenn das Objekt, das Sie durchlaufen möchten, ein Array-Typ ist, geben Sie diesen Codeblock ein

 

für Schleife

if(isArray) {
      for(; i < length; i++) {
        value = callback.call(obj[i], i, obj[i]);
        if(value === false) { break; }
      }
    }
Nach dem Login kopieren
Durchlaufen Sie jedes Element des Arrays

und führen Sie dann mit der Aufrufmethode obj[i].callback(i,obj[i]) aus.
Daher beim Schreiben der Rückruffunktion Sie sollten sich darüber im Klaren sein, dass jquery jedes Objekt im Array verwendet, um Ihre Rückruffunktion auszuführen. Die übergebenen Parameter sind gleichzeitig der Index des Elements im Array und das Element, auf das auch die Rückrufmethode verweist das Element; In der nächsten Zeile wird ermittelt, ob die Rückruffunktion einen Wert zurückgegeben hat. Wenn die Rückruffunktion „false“ zurückgibt, wird die Schleife des Arrays verlassen. Wenn das von Ihnen übergebene Objekt auch durchlaufen werden kann, ist der Code derselbe wie bei der Array-Durchquerung oben

Wenn Sie ein Objekt übergeben, verwenden Sie for(x in y)

Durchlaufen Sie die Attribute des Objekts

,

Das Prinzip ist das gleiche wie oben, außer dass es durch das Attribut x innerhalb des Objekts ersetzt wird, um die Rückruffunktion auszuführen, was obj.attr.callback( i,obj.attr);
else {
      for(i in obj) {
          value = callback.call(obj[i], i, obj[i]);
          if(value === false) { break; }
        }
    }
Nach dem Login kopieren
Wenn in der Callback-Funktion false zurückgegeben wird, wird auch die Schleifenoperation beendet.

2. Wenn Argumente vorhanden sind
Beim Aufruf von every() mit dem dritten Parameter wird der folgende Codeblock zur Analyse eingegeben:

Auf die gleiche Weise wird zunächst ermittelt, ob das Objekt, das Sie durchlaufen möchten, ein Array ist. Wenn es sich um ein Array handelt, wird das Element obj[i] des Arrays durchlaufen und obj[i].callback( ausgeführt. args)Achtung! Der hier übergebene Parameter ist das args-Array, das Sie übergeben haben. Dies unterscheidet sich vom args-Parameter ohne. Das heißt, wenn Sie jede Funktion aufrufen und Ihren eigenen Array-Parameter übergeben, werden die Callback-Parameter der Funktion

Die Liste ist das args-Array, das Sie übergeben. Für alles andere gilt das Gleiche wie oben.
if(isArray) {            
   for(; i < length; i++) {
     value = callback.apply(obj[i], args);                
     if(value === false) { break; }
            }
        } else {            
        for(i in obj) {
          value = callback.apply(obj[i], args);                
          if(value === false) { break; 
          }
        }
  }
Nach dem Login kopieren

$(selector).each(callback,args) Funktion empfängt 2 Parameter: callback – die Callback-Funktion, die durchlaufen und ausgeführt werden soll, args – das von Ihnen angegebene Array. Nachdem Sie die Funktion $.each() verstanden haben, ist $(selector).each einfach. Öffnen Sie den Quellcode und stellen Sie fest, dass die Funktion $.each() in $(selector).each aufgerufen wird.
Sie können sehen, dass beim Aufruf von $.each() der obj-Parameter wie folgt geschrieben wird: $(selector). Dies ist der JQuery-Selektor, der ein JQuery

internes Objekt< zurückgibt 🎜>.

 

each: function( callback, args ) {
      return jQuery.each( this, callback, args );
  },
Nach dem Login kopieren

Zusammenfassung: Der Unterschied zwischen $.each() und $(selector).each() besteht darin, dass ersteres alle Objekte oder Arrays durchlaufen kann, während letzteres für JQuery-Selektoren zurückgegeben wird Jquery-interne Objekte werden durchlaufen, ersteres ist leistungsfähiger

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Unterschieds zwischen $(selector).each() und $.each() von Jquery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Unterschied zwischen char und wchar_t in der C -Sprache Der Unterschied zwischen char und wchar_t in der C -Sprache Apr 03, 2025 pm 03:09 PM

In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Was ist die Funktion der C -Sprachsumme? Was ist die Funktion der C -Sprachsumme? Apr 03, 2025 pm 02:21 PM

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

Was ist der Unterschied zwischen Char und Unsigned char Was ist der Unterschied zwischen Char und Unsigned char Apr 03, 2025 pm 03:36 PM

Char und Unsigned char sind zwei Datentypen, die Charakterdaten speichern. Der Hauptunterschied ist der Weg, um mit negativen und positiven Zahlen umzugehen: Wertebereich: char signiert (-128 bis 127) und nicht signiertes char nicht signiert (0 bis 255). Negative Zahlenverarbeitung: char kann negative Zahlen speichern, unsigned char kann nicht. Bitmodus: char Das höchste Bit repräsentiert das Symbol, nicht signiertes char unsigned Bit. Arithmetische Operationen: SHOR und unsigned char sind signierte und nicht signierte Typen, und ihre arithmetischen Operationen sind unterschiedlich. Kompatibilität: SHAR und nicht signiertes Zeichen

Was sind die grundlegenden Anforderungen für C -Sprachfunktionen? Was sind die grundlegenden Anforderungen für C -Sprachfunktionen? Apr 03, 2025 pm 10:06 PM

C -Sprachfunktionen sind die Grundlage für die Code -Modularisierung und das Programmaufbau. Sie bestehen aus Deklarationen (Funktionsüberschriften) und Definitionen (Funktionskörper). C Sprache verwendet standardmäßig Werte, um Parameter zu übergeben, aber externe Variablen können auch mit dem Adresspass geändert werden. Funktionen können oder haben keinen Rückgabewert, und der Rückgabewerttyp muss mit der Deklaration übereinstimmen. Die Benennung von Funktionen sollte klar und leicht zu verstehen sein und mit Kamel oder Unterstrich die Nomenklatur. Befolgen Sie das Prinzip der einzelnen Verantwortung und behalten Sie die Funktion ein, um die Wartbarkeit und die Lesbarkeit zu verbessern.

Der Unterschied zwischen H5- und Miniprogramm und Apps Der Unterschied zwischen H5- und Miniprogramm und Apps Apr 06, 2025 am 10:42 AM

H5. Der Hauptunterschied zwischen Mini -Programmen und App ist: Technische Architektur: H5 basiert auf Web -Technologie, und Mini -Programme und Apps sind unabhängige Anwendungen. Erfahrung und Funktionen: H5 ist leicht und einfach zu bedienen, mit begrenzten Funktionen; Mini -Programme sind leicht und haben eine gute Interaktivität. Apps sind leistungsstark und haben reibungslose Erfahrung. Kompatibilität: H5 ist plattformübergreifend, Applets und Apps werden von der Plattform eingeschränkt. Entwicklungskosten: H5 verfügt über niedrige Entwicklungskosten, mittlere Mini -Programme und die höchste App. Anwendbare Szenarien: H5 eignet sich für Informationsanzeigen, Applets eignen sich für leichte Anwendungen und Apps eignen sich für komplexe Funktionen.

Was sind die Unterschiede und Verbindungen zwischen C und C#? Was sind die Unterschiede und Verbindungen zwischen C und C#? Apr 03, 2025 pm 10:36 PM

Obwohl C und C# Ähnlichkeiten haben, sind sie völlig unterschiedlich: C ist eine prozessorientierte, manuelle Speicherverwaltung und plattformabhängige Sprache, die für die Systemprogrammierung verwendet wird. C# ist eine objektorientierte, Müllsammlung und plattformunabhängige Sprache, die für Desktop-, Webanwendungs- und Spielentwicklung verwendet wird.

So setzen Sie den Kennwortschutz für Exportieren von PDF auf PS So setzen Sie den Kennwortschutz für Exportieren von PDF auf PS Apr 06, 2025 pm 04:45 PM

PDF mit Passwort geschützt in Photoshop exportieren: Öffnen Sie die Bilddatei. Klicken Sie auf "Datei" & gt; "Export" & gt; "Exportieren Sie als PDF". Stellen Sie die Option "Sicherheit" fest und geben Sie dasselbe Passwort zweimal ein. Klicken Sie auf "Exportieren", um eine PDF -Datei zu generieren.

See all articles