⊗jqBsEM 30 of 113 menu

Arbeid med metoden each i jQuery

Når vi har en gruppe elementer hentet med jQuery, kan vi bare gjøre endringer i dem for alle elementene samtidig.

For eksempel, hvis vi vil endre teksten til alle funnede avsnitt - vil vi ikke kunne gjøre den forskjellig.

I dette tilfellet hjelper den spesielle metoden each, som lar oss bruke en funksjon på alle elementene i et jQuery-sett. Inne i denne funksjonen kan vi skille elementene og håndtere hver av dem forskjellig.

I bunn og grunn er each en løkke som kan brukes til å iterere gjennom alle de funnede elementene. En referanse til det elementet som løkken for øyeblikket behandler vil ligge i this.

Vi kan ganske enkelt bruke denne this i ren JavaScript, som vi gjorde tidligere, for eksempel slik - this.innerHTML - og vise det interne innholdet i elementene våre. Men det er bedre å pakke inn this i jQuery-dollar slik - $(this) - på denne måten kan vi bruke alle jQuery-metodene og kjeder på den.

La oss se på følgende HTML-kode:

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

I dette eksempelet skal vi hente alle elementer med klassen www og vise innholdet deres på skjermen. Slik gjøres det: ved hjelp av $('.www') henter vi elementene vi trenger, deretter bruker vi each(test) for å bruke funksjonen test på hvert hentet element. Den vil først bli brukt på det første avsnittet, deretter på det andre, det tredje, og så videre.

Inne i funksjonen vil this peke på det elementet som funksjonen test brukes på - først vil det være det første elementet, deretter det andre, og så videre. Med en slik konstruksjon $(this) vil vi, i stedet for en vanlig this fra JavaScript, få et jQuery-element og bruke metoden html på det, som vil hente teksten til elementet vårt. Deretter blir den bare vist på skjermen:

/* Skriv funksjonsnavnet test uten anførselstegn og (), fordi vi trenger koden dens, ikke resultatet: */ $('.www').each(test); function test() { alert($(this).html()); }

For å løse denne oppgaven kan vi også bruke anonyme funksjoner - dette gjøres oftest:

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

Vi kan også sende en callback-funksjon med parametere til metoden each.

La oss i det neste eksempelet legge til rekkefølgenummeret deres på slutten av alle li på siden. Nå vil vi sende elementets nummer og selve elementet inn i vår anonyme funksjon:

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

Og nå bruker vi this i stedet for elem:

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

Endre innholdet i alle li til deres rekkefølgenummer.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis