⊗jqBsEM 30 of 113 menu

Arbejde med each-metoden i jQuery

Når vi har en gruppe elementer, der er hentet med jQuery, kan vi kun foretage ændringer i dem for alle elementer på samme tid.

For eksempel, hvis vi ønsker at ændre teksten i alle de fundne afsnit - vil det ikke være muligt at gøre den forskellig.

I dette tilfælde hjælper den specielle metode each, som gør det muligt at anvende en funktion på alle elementer i et jQuery-sæt. Inde i denne funktion vil vi være i stand til at skelne mellem elementerne og behandle dem forskelligt.

I bund og grund er each en løkke, som kan bruges til at gennemgå alle de fundne elementer. En reference til det element, som løkken i øjeblikket itererer over, vil være tilgængelig i this.

Vi kan simpelthen bruge denne this i ren JavaScript, som vi gjorde tidligere, for eksempel sådan her - this.innerHTML - og udskrive elementernes indre indhold. Men det er bedre at indkapsle this i jQuery-dollar på denne måde - $(this) - på denne måde kan vi anvende alle jQuery-metoder og kæder på det.

Lad os 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 eksempel skal vi hente alle elementer med klassen www og udskrive deres indhold på skærmen. Sådan gøres det: med $('.www') henter vi de ønskede elementer, derefter anvender vi funktionen test på hvert element ved hjælp af each(test). Den vil først blive anvendt på det første afsnit, derefter på det andet, på det tredje og så videre.

Inde i funktionen vil this pege på det element, som funktionen test anvendes på - først vil det være det første element, derefter det andet, og så videre. Ved hjælp af en sådan konstruktion $(this) vil vi, i stedet for en almindelig this fra JavaScript, få et jQuery-element og anvende metoden html på det, som vil hente tekstindholdet af vores element. Derefter bliver det simpelthen vist på skærmen:

/* Funktionens navn test skrives uden anførselstegn og (), da vi har brug for dens kode, og ikke resultatet: */ $('.www').each(test); function test() { alert($(this).html()); }

Til at løse denne opgave kan anonyme funktioner også bruges - det gøres mest almindeligt:

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

Vi kan også give each-metoden en callback-funktion med parametre.

Lad os i det næste eksempel tilføje deres rækkenummer til slutningen af alle li på siden. Nu vil vi sende elementets nummer og selve elementet ind i vores anonyme funktion:

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

Og nu bruger vi this i stedet for elem:

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

Skift indholdet af alle li til deres rækkenummer.

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