Doorgeven van een callback voor DOM-manipulatie in JavaScript

Stel dat we een groep DOM-elementen hebben:

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>

Laten we een functie forEach maken die als eerste parameter een selector van een groep elementen accepteert, en als tweede parameter - een callback-functie die achtereenvolgens op elk van de gevonden elementen wordt toegepast:

javascriptforEach('.elem', function() {
  // de functie wordt op elk element toegepast
});

Laat de elementen die voldoen aan de selector achtereenvolgens in de eerste parameter van de callback terechtkomen:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // geeft achtereenvolgens de gevonden elementen weer
});

Laten we met behulp van onze functie alle elementen met de klasse elem vinden en voor elk gevonden element een callback toepassen die de tekst van elk element kwadrateert:

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

Laten we nu de implementatie schrijven van de functie forEach die we in gedachten hadden:

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

Er worden alinea's gegeven. Voeg met behulp van onze gemaakte functie forEach voor elke alinea een uitroepteken toe aan het einde van de tekst.