⊗jqBsEM 30 of 113 menu

Delo z metodo each v jQuery

Ko imamo skupino elementov, pridobljenih z jQuery, lahko spreminjamo le vse elemente hkrati.

Na primer, če želimo spremeniti besedilo vseh naštetih odstavkov - ne bomo mogli narediti drugačnega.

V tem primeru nam bo pomagala posebna metoda each, ki omogoča uporabo kakšne funkcije za vse elemente niza jQuery. Pri tem znotraj te funkcije lahko ločimo elemente in ravnamo drugače z vsakim od njih.

V bistvu je each zanka, s pomočjo katere lahko iteriramo čez vse najdene elemente. Povezava do tistega elementa, prek katerega trenutno poteka zanka, bo v this.

Ta this lahko preprosto uporabimo v čistem JavaScriptu, kot smo to počeli prej, na primer takole - this.innerHTML - in izpišemo notranjo vsebino naših elementov. Vendar je bolje oviti this v dolar jQuery na ta način - $(this) - v tem primeru lahko zanj uporabimo vse metode in verige jQuery.

Oglejmo si naslednjo HTML kodo:

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

V tem primeru moramo dobiti vse elemente z razredom www in jih prikazati na zaslonu njihovo vsebino. Kako se to naredi: s pomočjo $('.www') dobimo elemente, ki jih potrebujemo, nato s pomočjo each(test) za vsakega prejetega elementa uporabimo funkcijo test. Najprej se bo uporabila za prvi odstavek, nato za drugega, za tretjega in tako naprej.

Znotraj funkcije bo this kazal na tisti element, za katerega se uporablja funkcija test - najprej bo to prvi element, nato drugi, in tako naprej. S takšno konstrukcijo $(this) namesto običajnega this iz JavaScripta dobimo element jQuery in zanj uporabimo metodo html, ki bo dobila besedilo našega elementa. No, nato se bo preprosto prikazal na zaslonu:

/* Ime funkcije test pišemo brez narekovajev in (), ker potrebujemo njeno kodo, ne rezultat: */ $('.www').each(test); function test() { alert($(this).html()); }

Za rešitev te težave lahko uporabimo tudi anonimne funkcije - to se počne najpogosteje:

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

Prav tako lahko metodi each posredujemo callback-funkcijo s parametri.

V naslednjem primeru dodajmo na konec vsem li na strani njihovo zaporedno številko. Zdaj v našo anonimno funkcijo bomo podali številko elementa in sam element:

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

In zdaj namesto elem uporabimo this:

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

Spremenite vsebino vseh li na njihovo zaporedno številko.

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni