DOM darbui su JavaScript skirto atgalinio iškvietimo perdavimas
Tarkime, kad turime tam tikrą DOM elementų grupę:
<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>
Sukurkime funkciją forEach, kuri
pirmu parametru priims
elementų grupės selektorių, o antru parametru - atgalinio iškvietimo funkciją,
kuri bus paeiliui taikoma kiekvienam iš
rastų elementų:
forEach('.elem', function() {
// funkcija bus taikoma kiekvienam elementui
});
Tegul elementai, atitinkantys selektorių, paeiliui pateka į pirmą atgalinio iškvietimo parametrą:
forEach('.elem', function(elem) {
console.log(elem); // išves paeiliui rastus elementus
});
Panaudokime mūsų funkciją, kad rastume visus
elementus su klase elem ir kiekvienam
rastam elementui pritaikykime atgalinį iškvietimą, kuris
pakels kiekvieno elemento tekstą kvadratu:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Dabar parašykime mūsų sumanytos funkcijos forEach realizaciją:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Duoti pastraipos. Naudodami mūsų sukurtą funkciją forEach kiekvienai pastraipai pridėkite pabaigoje jos teksto šauktuką.