Passage d'un callback pour travailler avec le DOM en JavaScript

Supposons que nous ayons un groupe d'éléments DOM :

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>

Créons une fonction forEach qui prendra en premier paramètre un sélecteur d'un groupe d'éléments, et en deuxième paramètre - une fonction de callback, qui sera appliquée tour à tour à chacun des éléments trouvés :

javascriptforEach('.elem', function() {
  // la fonction sera appliquée à chaque élément
});

Faisons en sorte que les éléments correspondant au sélecteur soient passés tour à tour dans le premier paramètre du callback :

javascriptforEach('.elem', function(elem) {
  console.log(elem); // affichera tour à tour les éléments trouvés
});

Utilisons notre fonction pour trouver tous les éléments avec la classe elem et pour chaque élément trouvé, appliquons un callback qui mettra au carré le texte de chaque élément :

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

Écrivons maintenant l'implémentation de la fonction forEach que nous avons imaginée :

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

Des paragraphes sont donnés. À l'aide de la fonction forEach que nous avons créée, ajoutez un point d'exclamation à la fin du texte de chaque paragraphe.