DOM bilan ishlash uchun JavaScript-da callback funksiyani uzatish
Faraz qilaylik, bizda DOM elementlarining ma'lum bir guruhi mavjud:
<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>
Keling, forEach funksiyasini yarataylik, u
birinchi parametr sifatida elementlar guruhining selektorini,
ikkinchi parametr sifatida esa - callback funksiyani
qabul qiladi,
u topilgan har bir elementga navbatma-navbat qo'llaniladi:
forEach('.elem', function() {
// funksiya har bir elementga qo'llaniladi
});
Faraz qilaylik, selektor ostiga tushgan elementlar navbat bilan callbackning birinchi parametriga tushsin:
forEach('.elem', function(elem) {
console.log(elem); // topilgan elementlarni navbat bilan chiqaradi
});
Keling, yaratgan funksiyamiz yordamida elem
klasiga ega bo'lgan barcha elementlarni topaylik va har bir
topilgan element uchun callbackni qo'llaylik, u
har bir elementning matnini kvadratga ko'taradi:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Keling, endi rejalashtirgan forEach funksiyamizning
realizatsiyasini yozamiz:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Abzatslar berilgan. Biz yaratgan forEach funksiyasi yordamida har bir abzatsning oxiriga uning matniga undov belgisini qo'shing.