DOM ilə işləmək üçün JavaScript-də callback funksiyasının ötürülməsi
Tutaq ki, bizim müəyyən bir DOM elementlər qrupumuz var:
<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>
Gəlin forEach funksiyasını edək ki,
birinci parametr kimi elementlər qrupunun
selektorunu, ikinci parametr kimi isə callback funksiyasını
qəbul etsin, hansı ki, tapılan elementlərin hər
birinə növbə ilə tətbiq olunacaq:
forEach('.elem', function() {
// funksiya hər elementə tətbiq olunacaq
});
Qoy selektor altına düşən elementlər, növbə ilə callback-in birinci parametrinə düşsün:
forEach('.elem', function(elem) {
console.log(elem); // tapılan elementləri növbə ilə çıxardacaq
});
Gəlin yaratdığımız funksiya vasitəsilə elem
sinfi olan bütün elementləri tapaq və hər tapılmış
element üçün callback tətbiq edək ki, hər elementin
mətnini kvadrata yüksəltsin:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Gəlin indi nəzərdə tutduğumuz forEach
funksiyasının realizasiyasını yazaq:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Abzaslar verilib. Yarattığımız forEach funksiyası vasitəsilə hər abzasın mətninə sonunda nida işarəsi əlavə edin.