⊗jqBsEM 30 of 113 menu

Práca s metódou each v jQuery

Keď máme skupinu prvkov získaných pomocou jQuery, môžeme do nich vykonať zmeny len pre všetky prvky naraz.

Napríklad, ak chceme zmeniť text všetkých nájdených odsekov - nedokážeme ho urobiť rôznym.

V tomto prípade nám pomôže špeciálna metóda each, ktorá umožňuje aplikovať nejakú funkciu pre všetky prvky súboru jQuery. Pritom vo vnútri tejto funkcie budeme môcť rozdeliť prvky a narábať inak s každým z nich.

V podstate each je cyklus, s ktorým môžete prejsť všetky nájdené prvky. Odkaz na ten prvok, po ktorom práve prechádza cyklus bude ležať v this.

Môžeme jednoducho využiť tento this v čistom JavaScripte, ako sme to robili predtým, napríklad tak - this.innerHTML - a vypísať vnútorný obsah našich prvkov. Ale lepšie je obaliť this do jQuery dolárom takýmto spôsobom - $(this) - v tomto prípade budeme môcť aplikovať naň všetky metódy a reťazce jQuery.

Pozrime sa na nasledujúci HTML kód:

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

V tomto príklade musíme získať všetky prvky s triedou www a vypísať na obrazovku ich obsah. Ako sa to robí: pomocou $('.www') získame potrebné prvky, potom pomocou each(test) aplikujeme na každý získaný prvok funkciu test. Najprv sa aplikuje na prvý odsek, potom na druhý, na tretí a tak ďalej.

Vo vnútri funkcie this bude ukazovať na ten prvok, na ktorý sa aplikuje funkcia test - najprv to bude prvý prvok, potom druhý, a tak ďalej. Pomocou takejto konštrukcie $(this) miesto obyčajného this z JavaScriptu získame jQuery prvok a aplikujeme naň metódu html, ktorá získa text nášho prvku. No, a potom sa jednoducho vypíše na obrazovku:

/* Názov funkcie test píšeme bez úvodzoviek a (), pretože potrebujeme jej kód, nie výsledok: */ $('.www').each(test); function test() { alert($(this).html()); }

Na riešenie tejto úlohy možno použiť aj anonymné funkcie - tak to robia najčastejšie:

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

Tiež môžeme odovzdať metóde each callback-funkciu s parametrami.

V nasledujúcom príklade pridajme na koniec všetkým li na stránke ich poradové číslo. Teraz do našej anonymnej funkcie budeme odovzdávať číslo prvku a samotný prvok:

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

A teraz namiesto elem použime this:

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

Zmeňte obsah všetkých li na ich poradové číslo.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť