Kalimi i një callback për të punuar me DOM në JavaScript

Le të supozojmë se kemi një grup elementësh 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>

Le të krijojmë funksionin forEach, i cili do të marrë si parametër të parë një selektor të grupit të elementëve, dhe si parametër të dytë - një funksion callback, i cili do të aplikohet në mënyrë të njëpasnjëshme për secilin prej elementëve të gjetur:

javascriptforEach('.elem', function() {
  // funksioni do të aplikohet për çdo element
});

Le të supozojmë se elementët që përputhen me selektorin, do të kalojnë njëri nga njëri në parametrin e parë të callback:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // do të shfaqë elementët e gjetur një nga një
});

Le të përdorim funksionin tonë për të gjetur të gjitha elementet me klasën elem dhe për çdo element të gjetur të aplikojmë një callback, i cili do të ngrejë në katror tekstin e çdo elementi:

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

Tani le të shkruajmë implementimin e funksionit të menduar forEach:

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

Janë dhënë disa paragrafë. Duke përdorur funksionin e krijuar nga ne forEach për çdo paragraf, shtoni në fund të tekstit të tij një shenjë pikëçuditëse.