Předávání callbacku pro práci s DOM v JavaScriptu
Předpokládejme, že máme určitou skupinu DOM elementů:
<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>
Vytvořme funkci forEach, která
bude jako první parametr přijímat selektor
skupiny elementů a jako druhý parametr - funkci-callback,
která se postupně aplikuje na každý z
nalezených elementů:
forEach('.elem', function() {
// funkce se aplikuje na každý element
});
Nechť elementy odpovídající selektoru postupně přicházejí do prvního parametru callbacku:
forEach('.elem', function(elem) {
console.log(elem); // vypíše postupně nalezené elementy
});
Nyní pomocí naší funkce najdeme všechny
elementy s třídou elem a pro každý
nalezený element aplikujeme callback, který
umocní na druhou text každého elementu:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Nyní napišme implementaci naší zamýšlené
funkce forEach:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Jsou dány odstavce. Pomocí naší vytvořené funkce forEach přidejte pro každý odstavec na konec jeho textu vykřičník.