Meneruskan Callback untuk Bekerja dengan DOM di JavaScript

Misalkan kita memiliki sekelompok elemen 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>

Mari kita buat fungsi forEach yang pada parameter pertama akan menerima selector kelompok elemen, dan parameter kedua - fungsi-callback, yang akan diterapkan secara bergantian ke setiap elemen yang ditemukan:

javascriptforEach('.elem', function() {
  // fungsi akan diterapkan ke setiap elemen
});

Misalkan elemen-elemen yang sesuai dengan selector, secara bergantian masuk ke parameter pertama callback:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // akan menampilkan elemen yang ditemukan secara bergantian
});

Sekarang mari kita gunakan fungsi kita untuk menemukan semua elemen dengan kelas elem dan untuk setiap elemen yang ditemukan, terapkan callback yang akan memangkatkan dua teks setiap elemen:

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

Sekarang mari kita tulis implementasi dari fungsi forEach yang kita rencanakan:

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

Diberikan beberapa paragraf. Dengan menggunakan fungsi forEach yang telah kita buat, untuk setiap paragraf tambahkan tanda seru di akhir teksnya.