Menghantar Callback untuk Bekerja dengan DOM dalam JavaScript
Katakan kita mempunyai sekumpulan 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
akan menerima pemilih (selector) untuk
kumpulan elemen sebagai parameter pertama, dan parameter kedua - fungsi callback,
yang akan digunakan secara bergilir-gilir pada setiap
elemen yang ditemui:
forEach('.elem', function() {
// fungsi akan digunakan pada setiap elemen
});
Katakan elemen yang sepadan dengan pemilih itu masuk satu persatu ke dalam parameter pertama callback:
forEach('.elem', function(elem) {
console.log(elem); // akan memaparkan elemen yang ditemui satu persatu
});
Sekarang, dengan menggunakan fungsi kita, mari cari semua
elemen dengan kelas elem dan untuk setiap
elemen yang ditemui, gunakan callback yang
akan memangkatkan kuasa dua teks setiap elemen:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Sekarang mari kita tulis pelaksanaan fungsi
forEach yang kita rancang:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Diberi beberapa perenggan. Dengan menggunakan fungsi forEach yang kita buat, tambahkan tanda seru pada akhir teks setiap perenggan.