⊗jqBsEM 30 of 113 menu

Práce s metodou each v jQuery

Když máme skupinu prvků získaných pomocí jQuery, můžeme do nich provádět změny pouze pro všechny prvky současně.

Například, pokud chceme změnit text všech našich odstavců - nepodaří se nám jej udělat rozdílným.

V tomto případě nám pomůže speciální metoda each, která umožňuje aplikovat nějakou funkci na všechny prvky sady jQuery. Přitom uvnitř této funkce budeme moci prvky rozdělit a zacházet s každým z nich jinak.

V podstatě each je cyklus, pomocí kterého můžeme projít všechny nalezené prvky. Odkaz na ten prvek, po kterém právě prochází cyklus, bude ležet v this.

Můžeme jednoduše použít tento this v čistém JavaScriptu, jak jsme to dělali dříve, například takto - this.innerHTML - a vypsat vnitřní obsah našich prvků. Ale je lepší obalit this do dolaru jQuery tímto způsobem - $(this) - v tomto případě na něj budeme moci aplikovat všechny metody a řetězce jQuery.

Podívejme se na následující HTML kód:

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

V tomto příkladu musíme získat všechny prvky s třídou www a zobrazit na obrazovce jejich obsah. Jak se to dělá: pomocí $('.www') získáme potřebné prvky, poté pomocí each(test) aplikujeme na každý získaný prvek funkci test. Nejprve se aplikuje na první odstavec, poté na druhý, na třetí a tak dále.

Uvnitř funkce this bude ukazovat na ten prvek, na který se funkce test aplikuje - nejprve to bude první prvek, poté druhý, a tak dále. Pomocí takové konstrukce $(this) místo obyčejného this od JavaScriptu získáme prvek jQuery a aplikujeme na něj metodu html, který získá text našeho prvku. No, a poté se jednoduše vypíše na obrazovku:

/* Název funkce test píšeme bez uvozovek a (), protože potřebujeme její kód, ne výsledek: */ $('.www').each(test); function test() { alert($(this).html()); }

Pro řešení této úlohy lze použít i anonymní funkce - to se dělá nejčastěji:

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

Také můžeme předat metodě each callback-funkci s parametry.

Pojďme v následujícím příkladu přidat na konec všem li na stránce jejich pořadové číslo. Nyní do naší anonymní funkce budeme předávat číslo prvku a samotný prvek:

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

A nyní místo elem použijeme this:

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

Změňte obsah všech li na jejich pořadové číslo.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout