Prenos callback funkcije za delo z DOM v JavaScriptu
Recimo, da imamo neko skupino DOM elementov:
<p class="elem">1</p>
<p class="elem">2</p>
<p class="elem">3</p>
<p class="elem">4</p>
<p class="elem">5</p>
Naredimo funkcijo forEach, ki
bo kot prvi parameter sprejela selektor
skupine elementov, kot drugi parameter pa - funkcijo-callback,
ki se bo zaporedoma uporabila za vsakega od
našdenih elementov:
forEach('.elem', function() {
// funkcija se bo uporabila za vsak element
});
Naj elementi, ki ustrezajo selektorju, zaporedoma pridejo v prvi parameter callbacka:
forEach('.elem', function(elem) {
console.log(elem); // izpiše zaporedoma najdene elemente
});
S pomočjo naše funkcije poiščimo vse
elemente z razredom elem in za vsak
našden element uporabimo callback, ki
bo kvadriral tekst vsakega elementa:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Zdaj pa napišimo implementacijo naše zamisljene
funkcije forEach:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Podani so odstavki. S pomočjo ustvarjene funkcije forEach vsakemu odstavku na konec njegovega teksta dodaj klicaj.