DOM-თან მუშაობის კოლბექის გადაცემა JavaScript-ზე

დავუშვათ, გვაქვს 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>

შევქმნათ ფუნქცია forEach, რომელიც პირველ პარამეტრად მიიღებს ელემენტების ჯგუფის სელექტორს, ხოლო მეორე პარამეტრად - ფუნქცია-კოლბექს, რომელიც თანმიმდევრობით გამოყენებული იქნება ყოველ ნაპოვნ ელემენტზე:

javascriptforEach('.elem', function() {
  // ფუნქცია გამოყენებული იქნება ყოველ ელემენტზე
});

დავუშვათ, სელექტორის ქვეშ მოხვედრილი ელემენტები თანმიმდევრობით მოხვდებიან კოლბექის პირველ პარამეტრში:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // გამოიტანს თანმიმდევრობით ნაპოვნ ელემენტებს
});

ჩვენი ფუნქციის დახმარებით ვიპოვოთ ყველა ელემენტი elem კლასით და ყოველ ნაპოვნ ელემენტზე გამოვიყენოთ კოლბექი, რომელიც აყვანს კვადრატში თითოეული ელემენტის ტექსტს:

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

ახლა დავწეროთ ჩვენი დაგეგმილი ფუნქციის forEach რეალიზაცია:

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

მოცემულია აბზაცები. ჩვენი შექმნილი ფუნქციის forEach დახმარებით ყოველ აბზაცს დაუმატეთ მისი ტექსტის ბოლოში ძახილის ნიშანი.