2017-01-31 4 views
2

Ich bin mir sicher, dass dies eine neue Frage ist, aber ich verstehe nicht, welchen Vorteil .each() über einen normalen $() Selektor hat. Die $() wählt alle Instanzen des Selektors aus und wendet an, was immer auf den Selektor angewendet wird, auf alle übereinstimmenden Instanzen. Meine sofortige Reaktion ist: Nun .each() ermöglicht komplexere Dinge, aber Sie können Methode Kette mit Jquery, so kann ich komplexere Dinge mit dem normalen Selektor auch tun. wenn ich 5 p Elemente zum Beispiel, und ich schreibe:Ich bin ein bisschen verwirrt was Vorteil .each() hat

$("p").css("color","blue");//this would be applied to all five p elements 

$("p").each(function(){$(this).css("color","blue")});//this does the 
                 //same thing 

Ich bin sicher, dass es eine Verwendung für .each() ist, ich bin nur noch Probleme, es zu sehen, die normalen Wähler bereits eine Schleife über alles scheinen . Könnte mir jemand ein Beispiel dafür geben, warum ich .each() verwenden möchte?

+2

Es wird nützlich sein, wenn Sie für jedes Element eine andere Farbe einstellen müssen. –

Antwort

5

Hier ist ein Beispiel, das die Farbe jedes Elements basierend auf seinem data-color Attribut festlegt.

$("p").each(function(){$(this).css("color", $(this).data("color"))});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p data-color="red">Red</p> 
 
<p data-color="green">Green</p> 
 
<p data-color="blue">Blue</p>

Grundsätzlich $.each() lassen Sie eine Funktion aufrufen, die Zugriff auf das betreffende Element hat. Dies wiederum ermöglicht es Ihnen, Funktionen basierend auf einer Eigenschaft oder einem Attribut des Elements aufzurufen.

+0

dat one-liner tho – Miro

+1

@Miro Persönlich würde ich sagen: '$ (" p ") jeder ((i, el) => $ (el) .css (" farbe ", $ (el) .data ("color"))); ' –

+0

Whoa, hab was Neues gelernt :) – Miro

Verwandte Themen