Predanie callback funkcie pre prácu s DOM v JavaScripte
Predpokladajme, že máme skupinu 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>
Vytvorme funkciu forEach, ktorá
ako prvý parameter bude prijímať selektor
skupiny elementov a ako druhý parameter - callback funkciu,
ktorá sa aplikuje jeden po druhom na každý
nájdený element:
forEach('.elem', function() {
// funkcia sa aplikuje na každý element
});
Nech sa elementy, ktoré spĺňajú selektor, dostanú jeden po druhom ako prvý parameter callback funkcie:
forEach('.elem', function(elem) {
console.log(elem); // vypíše postupne všetky nájdené elementy
});
Pomocou našej funkcie nájdime všetky
elementy s triedou elem a pre každý
nájdený element aplikujme callback, ktorý
umocní na druhú text každého elementu:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Teraz napíšme implementáciu našej zamýšľanej
funkcie forEach:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Sú dané odseky. Pomocou nami vytvorenej funkcie forEach pridajte pre každý odsek na koniec jeho textu výkričník.