Heim >Web-Frontend >js-Tutorial >5 jQuery.each () Funktionsbeispiele
In diesem Artikel wird die Funktion jQuery.each () eingehend erläutert - eine der wichtigsten und am häufigsten verwendeten Funktionen in JQuery. Wir werden seine Bedeutung untersuchen und lernen, wie man sie benutzt.
Kernpunkte
Was ist jQuery.each ()?
jQuery's Jedes () -Funktion wird verwendet, um jedes Element des Ziel -JQuery -Objekts zu durchschleifen - ein Objekt, das ein oder mehrere DOM -Elemente enthält, und alle JQuery -Funktionen aufzudecken. Es ist sehr nützlich für Multi-Element-DOM-Operationen und Iterationen über willkürliche Array- und Objekteigenschaften.
Zusätzlich zu dieser Funktion bietet JQuery auch eine Helferfunktion mit demselben Namen, der ohne vorherige Auswahl oder Erstellung von DOM -Elementen aufgerufen werden kann.
jQuery.each () syntax
Schauen wir uns die praktische Anwendung verschiedener Modi an.
Das folgende Beispiel wählt jedes <div> Element auf der Webseite aus und gibt den Index und die ID jedes Elements aus:
<pre class="brush:php;toolbar:false"><code class="language-javascript">// DOM 元素
$('div').each(function(index, value) {
console.log(`div${index}: ${this.id}`);
});</code></pre>
<p> Die möglichen Ausgabeergebnisse sind: </p>
<pre class="brush:php;toolbar:false"><code>div0:header
div1:main
div2:footer</code></pre>
<p> Diese Version verwendet die <code>$(selector).each()
-Funktion von JQuery, keine praktischen Funktionen.
Das nächste Beispiel zeigt die Verwendung praktischer Funktionen. In diesem Fall wird das Objekt als erster Parameter angegeben. In diesem Beispiel werden wir zeigen, wie man das Array durchläuft:
<code class="language-javascript">// 数组 const arr = [ 'one', 'two', 'three', 'four', 'five' ]; $.each(arr, function(index, value) { console.log(value); // 将在 "three" 后停止运行 return (value !== 'three'); }); // 输出:one two three</code>
Im letzten Beispiel möchten wir zeigen, wie wir über die Eigenschaften eines Objekts iterieren können:
<code class="language-javascript">// 对象 const obj = { one: 1, two: 2, three: 3, four: 4, five: 5 }; $.each(obj, function(key, value) { console.log(value); }); // 输出:1 2 3 4 5</code>
All dies läuft darauf hinaus, die entsprechende Rückruffunktion bereitzustellen. Der Kontext der Rückruffunktion this
entspricht seinem zweiten Parameter, dem aktuellen Wert. Da der Kontext jedoch immer ein Objekt ist, muss der ursprüngliche Wert verpackt werden:
<code class="language-javascript">$.each({ one: 1, two: 2 } , function(key, value) { console.log(this); }); // Number { 1 } // Number { 2 }</code>
Dies bedeutet, dass es keine strenge Gleichheit zwischen dem Wert und dem Kontext gibt.
<code class="language-javascript">$.each({ one: 1 } , function(key, value) { console.log(this == value); console.log(this === value); }); // true // false</code>
Der erste Parameter ist der aktuelle Index, der eine Zahl (für Arrays) oder eine String (für Objekte) ist.
Lassen Sie uns sehen, wie die Funktion jQuery.each () in Verbindung mit JQuery -Objekten verwendet wird. Das erste Beispiel wählt alle a
Elemente auf der Seite aus und gibt ihre href
Eigenschaften aus:
<code class="language-javascript">$('a').each(function(index, value){ console.log(this.href); });</code>
Das zweite Beispiel gibt jeden externen href
auf der Webseite aus (unter der Annahme nur das HTTP (S) -Protokoll):
<code class="language-javascript">$('a').each(function(index, value){ const link = this.href; if (link.match(/https?:\/\//)) { console.log(link); } });</code>
Angenommen, es gibt den folgenden Link auf der Seite:
<code class="language-html"><a href="https://www.php.cn/link/9a4b930f7a36153ca68fdf211c8836a7">SitePoint</a> <a href="https://www.php.cn/link/235fba44e32ba4dd3a3f72db1a8a6846">MDN web docs</a> <a href="https://www.php.cn/link/60c4a88bac6125d490af523a8c94e5e1">Example Domain</a></code>
Das zweite Beispiel wird ausgegeben:
<code class="language-javascript">// DOM 元素 $('div').each(function(index, value) { console.log(`div${index}: ${this.id}`); });</code>
Wir sollten beachten, dass das DOM -Element aus dem JQuery -Objekt in der Rückruffunktion, die es an jQuery.each () übergibt, "natives" Formular ist. Der Grund dafür ist, dass JQuery eigentlich nur ein Wrapper für Arrays von DOM -Elementen ist. Durch die Verwendung von jQuery.each () wird dieses Array auf die gleiche Weise wie ein normales Array iteriert. Daher werden wir nicht die Elemente der Verpackung aus der Schachtel bekommen.
Zu unserem zweiten Beispiel bedeutet dies, dass wir das Attribut des Elements durch das Schreiben this.href
erhalten können. Wenn wir die href
-Methode von JQuery verwenden möchten, müssen wir das Element wie folgt neu verpacken: attr()
. $(this).attr('href')
<code>div0:header div1:main div2:footer</code>Dieser Code -Snippet -Ausgang:
<code class="language-javascript">// 数组 const arr = [ 'one', 'two', 'three', 'four', 'five' ]; $.each(arr, function(index, value) { console.log(value); // 将在 "three" 后停止运行 return (value !== 'three'); }); // 输出:one two three</code>nichts Besonderes hier. Das Array hat einen numerischen Index, daher erhalten wir Zahlen von 0 bis
n-1 , wobei n die Anzahl der Elemente im Array ist.
<code class="language-javascript">// 对象 const obj = { one: 1, two: 2, three: 3, four: 4, five: 5 }; $.each(obj, function(key, value) { console.log(value); }); // 输出:1 2 3 4 5</code>Dieses Beispielausgabe:
<code class="language-javascript">$.each({ one: 1, two: 2 } , function(key, value) { console.log(this); }); // Number { 1 } // Number { 2 }</code>Wir verwenden verschachtelte Anrufe bei jQuery.each (), um verschachtelte Strukturen zu bewältigen. Der externe Anruf behandelt das Array der variablen Farben. In diesem Beispiel gibt es nur einen Schlüssel pro Objekt, aber Sie können diesen Code normalerweise verwenden, um eine beliebige Anzahl von Schlüssel zu verarbeiten.
<code class="language-javascript">$.each({ one: 1 } , function(key, value) { console.log(this == value); console.log(this === value); }); // true // false</code>Wir verwenden jede () Helferfunktion anstelle jeder () Methode im Selektor.
<code class="language-javascript">$('a').each(function(index, value){ console.log(this.href); });</code>In diesem Fall ist die Ausgabe:
<code class="language-javascript">$('a').each(function(index, value){ const link = this.href; if (link.match(/https?:\/\//)) { console.log(link); } });</code>Wir müssen keinen Index und Wert einbeziehen. Dies sind nur Parameter, die feststellen, welches DOM -Element wir derzeit iterieren. Darüber hinaus können wir in diesem Fall auch eine bequemere jeder Methode verwenden. Wir können so schreiben:
<code class="language-html"><a href="https://www.php.cn/link/9a4b930f7a36153ca68fdf211c8836a7">SitePoint</a> <a href="https://www.php.cn/link/235fba44e32ba4dd3a3f72db1a8a6846">MDN web docs</a> <a href="https://www.php.cn/link/60c4a88bac6125d490af523a8c94e5e1">Example Domain</a></code>wir werden in die Konsole kommen:
<code>https://www.php.cn/link/9a4b930f7a36153ca68fdf211c8836a7 https://www.php.cn/link/235fba44e32ba4dd3a3f72db1a8a6846 https://www.php.cn/link/60c4a88bac6125d490af523a8c94e5e1</code>Beachten Sie, dass wir das DOM -Element in eine neue JQuery -Instanz einwickeln, damit wir die text () -Methode von JQuery verwenden können, um den Textinhalt des Elements zu erhalten.
<code class="language-javascript">const numbers = [1, 2, 3, 4, 5]; $.each(numbers, function(index, value){ console.log(`${index}: ${value}`); });</code>Nach der indexbezogenen Verzögerung (0, 200, 400 ... ms) verblassen wir das Element aus:
<code>0:1 1:2 2:3 3:4 4:5</code>
Schlussfolgerung
In diesem Artikel zeigen wir, wie wir über Dom -Elemente, Arrays und Objekte mithilfe der Funktion jQuery.each () iterieren können. Dies ist eine leistungsstarke und zeitsparende Funktion, die Entwickler in ihr eigenes Toolkit einbeziehen sollten. Wenn JQuery nicht Ihre bevorzugte Wahl ist, möchten Sie möglicherweise in Betracht ziehen, mit JavaScript native Object.keys()
und Array.prototype.forEach()
Methoden zu verwenden. Es gibt auch Bibliotheken wie Foreach, die es Ihnen ermöglichen, über Schlüsselwertpaare von Klassenarray-Objekten oder Wörterbuchobjekten zu iterieren.
Denken Sie daran: $.each()
und $(selector).each()
sind zwei verschiedene Methoden, die auf zwei verschiedene Arten definiert wurden.
(Dieser Artikel wurde im Jahr 2020 aktualisiert, um aktuelle Best Practices widerzuspiegeln und die Schlussfolgerungen über native Lösungen mit dem modernen JavaScript zu aktualisieren. Um mehr über JavaScript zu erfahren, lesen Sie unser Buch JavaScript: vom Anfänger nach Ninja, zweite Ausgabe》)
Häufig gestellte Fragen zu jQuery jeder () Funktion
Was ist der Zweck der .each () -Funktion in jQuery? Die Funktion .each () in JQuery wird verwendet, um eine Sammlung von DOM -Elementen zu iterieren und spezifische Operationen für jedes Element auszuführen.
Wie kann ich die Funktion .each () in jQuery verwenden? Sie können die Funktion .each () verwenden, indem Sie eine Reihe von Elementen mithilfe des Jquery -Selektors auswählen und dann auf dieser Auswahl .ach () aufrufen. Sie geben eine Rückruffunktion an, die die Aktion definiert, die für jedes Element ausführt, um zu finden.
Welche Parameter der Rückruffunktion verwenden .each ()? Die Rückruffunktion akzeptiert zwei Parameter: Index (der aktuelle Index des Elements in der Sammlung) und das Element (das aktuelle DOM -Element, das iteriert wird).
Wie verwendet der Indexparameter in .each () Rückruffunktion? Sie können den Indexparameter verwenden, um die Position des aktuellen Elements in der Sammlung zu verfolgen, was für bedingte Operationen oder andere Operationen sehr nützlich ist.
Was sind einige häufige Anwendungsfälle für die Funktion.each ()? Zu den gemeinsamen Anwendungsfällen gehört die Iterierung einer Liste von Elementen, um ihre Eigenschaften, Werte oder Stile zu manipulieren und benutzerdefinierte Aktionen für jedes Element in der Sammlung durchzuführen.
Das obige ist der detaillierte Inhalt von5 jQuery.each () Funktionsbeispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!