Předávání callbacku pro práci s DOM v JavaScriptu

Předpokládejme, že máme určitou skupinu DOM elementů:

html<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ů:

javascriptforEach('.elem', function() {
  // funkce se aplikuje na každý element
});

Nechť elementy odpovídající selektoru postupně přicházejí do prvního parametru callbacku:

javascriptforEach('.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:

javascriptforEach('.elem', function(elem) {
  elem.textContent = elem.textContent ** 2;
});

Nyní napišme implementaci naší zamýšlené funkce forEach:

javascriptfunction forEach(selector, func) {
  let elems = document.querySelectorAll(selector);
  
  for (let elem of elems) {
    func(elem);
  }
}
Задание 1

Jsou dány odstavce. Pomocí naší vytvořené funkce forEach přidejte pro každý odstavec na konec jeho textu vykřičník.