⊗jqBsEM 30 of 113 menu

Att arbeta med metoden each i jQuery

När vi har en grupp element som erhållits med hjälp av jQuery, kan vi endast göra förändringar i dem för alla element samtidigt.

Till exempel, om vi vill ändra texten i alla hittade stycken - kommer vi inte att kunna göra den olik.

I det här fallet hjälper den speciella metoden each, som tillåter oss att applicera en funktion på alla element i ett jQuery-urval. Inuti denna funktion kommer vi att kunna separera elementen och agera olika med var och en av dem.

I grund och botten är each en loop, med vars hjälp man kan iterera genom alla hittade element. En referens till det element som loopen för närvarande behandlar finns i this.

Vi kan helt enkelt använda denna this i ren JavaScript, som vi gjorde tidigare, till exempel så här - this.innerHTML - och skriva ut elementens inre innehåll. Men det är bättre att slå in this i jQuery-dollar så här - $(this) - i så fall kan vi applicera alla jQuery-metoder och kedjor på den.

Låt oss titta på följande HTML-kod:

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

I det här exemplet ska vi få alla element med klassen www och skriva ut deras innehåll på skärmen. Så här gör man: med hjälp av $('.www') får vi de element vi behöver, sedan applicerar vi med hjälp av each(test) funktionen test på varje erhållet element. Den kommer först att appliceras på det första stycket, sedan på det andra, på det tredje och så vidare.

Inuti funktionen kommer this att peka på det element som funktionen test appliceras på - först blir det det första elementet, sedan det andra, och så vidare. Med en sådan konstruktion som $(this) kommer vi, istället för en vanlig this från JavaScript, att få ett jQuery-element och applicera metoden html på det, som kommer att hämta texten i vårt element. Sedan kommer den helt enkelt att skrivas ut på skärmen:

/* Funktionens namn test skrivs utan citationstecken och (), eftersom vi behöver dess kod, inte resultatet: */ $('.www').each(test); function test() { alert($(this).html()); }

För att lösa denna uppgift kan man även använda anonyma funktioner - så gör man oftast:

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

Vi kan också skicka en callback-funktion med parametrar till metoden each.

Låt oss i nästa exempel lägga till deras ordningsnummer i slutet på alla li på sidan. Nu kommer vi att skicka elementets nummer och själva elementet till vår anonyma funktion:

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

Och nu använder vi this istället för elem:

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

Ändra innehållet i alla li till deras ordningsnummer.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa