JavaScript-de DOM bilen işlemek üçin callback geçirmek

Bizde bir topar DOM elementleri bolsun:

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>

Geliň, birinji parametr hökmünde elementler toparynyň selektoryny, ikinji parametr hökmünde bolsa, tapylan elementleriň her birine gezekliçe goýlan callback funksiýasyny alyp biler ýaly bir forEach funksiýasyny düzeliň:

javascriptforEach('.elem', function() {
  // funksiýa her elemente goýlar
});

Selektor astyna düşen elementleriň, gezekliçe callback-iň birinji parametrine düşýändigini edeliň:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // tapylan elementleri gezekliçe görkezer
});

Geliň, düzen funksiýamyz bilen elem klasly ähli elementleri tapalyň we her bir tapylan element üçin, her bir element-iň tekstiniň kwadratyny hasaplaýan bir callback goýalyň:

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

Indi bolsa, meňzeş funksiýamyz forEach üçin amala aşyryşy ýazalyň:

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

Absatlar berlen. Biz ýasalan forEach funksiýamyz ýardamy bilen, her bir absat üçin onuň tekstiniň ahyryna ünlem belgisi goşuň.