Overførsel af callback til DOM-manipulation i JavaScript

Lad os sige, at vi har en gruppe af DOM-elementer:

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>

Lad os lave en funktion forEach, som tager en selektor for en gruppe af elementer som første parameter, og en callback-funktion som anden parameter, som vil blive anvendt på hvert af de fundne elementer efter tur:

javascriptforEach('.elem', function() {
  // funktionen vil blive anvendt på hvert element
});

Lad de elementer, der matcher selektoren, komme ind i den første parameter af callback'en efter tur:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // vil udskrive de fundne elementer efter tur
});

Lad os ved hjælp af vores funktion finde alle elementer med klassen elem og for hvert fundet element anvende en callback, som kvadrerer teksten i hvert element:

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

Lad os nu skrive implementationen af den funktion forEach, vi har tænkt os:

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

Der gives afsnit. Ved hjælp af den funktion, vi har oprettet, forEach, tilføj et udråbstegn til slutningen af hvert afsnits tekst for hvert afsnit.