Prosljeđivanje callback funkcije za rad sa DOM-om u JavaScript-u
Pretpostavimo da imamo određenu grupu DOM elemenata:
<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>
Napravimo funkciju forEach koja će
kao prvi parametar primati selektor
grupe elemenata, a kao drugi parametar - funkciju-callback,
koja će se primeniti jedan po jedan na svaki od
pronađenih elemenata:
forEach('.elem', function() {
// funkcija će se primeniti na svaki element
});
Neka elementi koji odgovaraju selektoru jedan po jedan dospeju u prvi parametar callback funkcije:
forEach('.elem', function(elem) {
console.log(elem); // ispisaće jedan po jedan pronađene elemente
});
Hajde da pomoću naše funkcije pronađemo sve
elemente sa klasom elem i za svaki
pronađeni element primenimo callback, koji
će kvadrirati tekst svakog elementa:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Sada hajde da napišemo implementaciju naše zamišljene
funkcije forEach:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Dat je nekoliko pasusa. Pomoću kreirane naše funkcije forEach za svaki pasus dodajte na kraj njegovog teksta uzvičnik.