⊗jqBsEM 30 of 113 menu

Travail avec la méthode each dans jQuery

Lorsque nous avons un groupe d'éléments obtenus avec jQuery, nous ne pouvons y apporter des modifications que pour tous les éléments simultanément.

Par exemple, si nous voulons changer le texte de tous les paragraphes trouvés - nous ne pourrons pas le rendre différent.

Dans ce cas, la méthode spéciale each nous sera utile, qui permet d'appliquer une fonction à tous les éléments d'une collection jQuery. Ainsi, à l'intérieur de cette fonction, nous pourrons distinguer les éléments et agir différemment avec chacun d'eux.

Essentiellement, each est une boucle, à l'aide de laquelle on peut parcourir tous les éléments trouvés. La référence à l'élément actuellement parcouru par la boucle se trouvera dans this.

Nous pouvons simplement utiliser ce this en JavaScript pur, comme nous le faisions auparavant, par exemple, comme ceci - this.innerHTML - et afficher le contenu interne de nos éléments. Mais il est préférable d'encapsuler this dans le dollar jQuery de cette manière - $(this) - dans ce cas, nous pourrons lui appliquer toutes les méthodes et chaînages jQuery.

Examinons le code HTML suivant :

<p class="www">text</p> <p class="www">text</p> <p class="www">text</p> <p>text</p>

Dans cet exemple, nous devons obtenir tous les éléments avec la classe www et afficher à l'écran leur contenu. Voici comment procéder : avec $('.www') nous obtenons les éléments dont nous avons besoin, puis avec each(test) nous appliquons la fonction test à chaque élément obtenu. Elle s'appliquera d'abord au premier paragraphe, puis au second, au troisième, et ainsi de suite.

À l'intérieur de la fonction, this pointera vers l'élément auquel la fonction test est appliquée - d'abord ce sera le premier élément, puis le second, et ainsi de suite. Avec une telle construction $(this), nous obtiendrons, au lieu d'un simple this de JavaScript, un élément jQuery et nous lui appliquerons la méthode html, qui récupérera le texte de notre élément. Ensuite, il sera simplement affiché à l'écran :

/* Nous écrivons le nom de la fonction test sans guillemets et sans (), car nous avons besoin de son code, et non du résultat : */ $('.www').each(test); function test() { alert($(this).html()); }

Pour résoudre cette tâche, on peut aussi utiliser des fonctions anonymes - c'est ce qui est le plus souvent fait :

$('.www').each(function() { alert($(this).html()); });

Nous pouvons également passer à la méthode each une fonction de rappel avec des paramètres.

Dans l'exemple suivant, ajoutons à la fin de tous les li de la page leur numéro d'ordre. Maintenant, nous allons passer à notre fonction anonyme le numéro de l'élément et l'élément lui-même :

$('li').each(function (index, elem) { $(elem).append(index); });

Et maintenant, utilisons this à la place de elem :

$('li').each(function (index) { $(this).append(index); });

Remplacez le contenu de tous les li par leur numéro d'ordre.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser