Meneruskan Callback untuk Bekerja dengan DOM di JavaScript
Misalkan kita memiliki sekelompok elemen DOM:
<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:
forEach('.elem', function() {
// fungsi akan diterapkan ke setiap elemen
});
Misalkan elemen-elemen yang sesuai dengan selector, secara bergantian masuk ke parameter pertama callback:
forEach('.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:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Sekarang mari kita tulis implementasi dari fungsi
forEach yang kita rencanakan:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Diberikan beberapa paragraf. Dengan menggunakan fungsi forEach yang telah kita buat, untuk setiap paragraf tambahkan tanda seru di akhir teksnya.