Innerhalb von jQuery gibt es zwei Arten von Schleifen: explizit und implizit .
Explizite Schleifen sind Schleifen, die Sie explizit aufrufen. Wenn Sie ein Array von Werten haben, die Sie durchlaufen möchten, können Sie die Methode $.each()
verwenden:
jQuery durchläuft dann alle Werte in Ihrem Array und führt anschließend eine anonyme Funktion aus. Sie übergibt zwei Werte an diese Funktion: den aktuellen Index des Werts, den es berührt, und den Wert selbst. Wenn wir also im ersten Durchlauf sind, ist der Index 0 und der Wert wird "#a" sein.
Wenn wir also angefangen haben mit:
%Vor%Nach dem Ausführen unserer expliziten Schleife wäre unser Ergebnis:
%Vor% Natürlich sind Sie nicht auf Arrays und andere handgefertigte Sammlungen beschränkt, wenn Sie die Methode $.empty()
verwenden. Sie können diese Methode auch direkt an Ihren Selektor ketten (beachten Sie, dass dies technisch eine andere $.each()
-Methode ist):
Diese Methode dient speziell zum Überfahren des jQuery-Objekts. Bei jeder Iteration wird das aktuelle Element in Ihrer anonymen Funktion als this
verfügbar gemacht. Wenn wir unser früheres Beispiel noch einmal betrachten, hätten wir Folgendes tun können:
Also wird für jedes übereinstimmende Element unsere anonyme Funktion ausgeführt. jQuery wird uns einen Index übergeben, damit wir unseren Fortschritt durch die passenden Elemente verfolgen können. Beim ersten Durchlauf wird index
0 und this
beziehen sich auf #a
. Beim zweiten Mal wird der Index 1 sein, und this
bezieht sich auf #b
.
Während explizite Schleifen verlockend sind, beachten Sie, dass sie Ihrer Anwendung unnötigen Overhead hinzufügen können. jQuery führt bereits eine Schleife aus, wenn mehrere übereinstimmende Elemente vorhanden sind. Diese Schleife wird als implizite Schleife bezeichnet. Manchmal können wir sie verwenden, um unsere Anforderungen zu erfüllen und gleichzeitig die Leistung zu steigern.
Implizite Schleifen werden automatisch in jQuery selbst ausgeführt, zum Beispiel mit Ihrem Code:
%Vor% jQuery führte eine Schleife über alle übereinstimmenden li
-Elemente aus und setzte ihre Farbe auf "rot". Wir mussten nicht spezifisch nach einer Schleife fragen - es tut nur eine implizit. Aber nehmen wir an, "rot" war viel zu einfach und wir wollten mit jedem einzelnen Element interagieren - wir können das tun, indem wir als zweites Argument eine Funktion übergeben:
Unsere Funktion wird von jQuery zwei Argumente übergeben: ein Index für das aktuelle Element und der aktuelle rgb-Wert der Farbe für dieses Element. Sie könnten eine davon für die interne Logik verwenden - ich gebe einfach innerHTML
von li
zurück. Was wir zurückgeben, wird der neue Wert für color
für dieses Element.
Wenn also unsere ungeordnete Liste so aussieht:
%Vor% Nachdem jQuerys implizite Schleife beendet ist, wird das erste li
rot, das zweite wird grün und das letzte wird blau sein.
Sie können dies online unter Ссылка
sehenAbhängig davon, welche Methode Sie aufrufen, werden unterschiedliche Argumente an Ihre Funktion übergeben. Stellen Sie sicher, dass Sie die Dokumentation lesen, um zu wissen, welche Informationen Ihnen während dieser impliziten Schleifen zur Verfügung stehen.