Oordrag van 'n callback om met die DOM in JavaScript te werk
Kom ons sê ons het 'n groep DOM-elemente:
<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>
Kom ons maak 'n funksie forEach, wat
die eerste parameter as die selekteerder
van die groep elemente sal aanvaar, en die tweede parameter - 'n callback-funksie,
wat een vir een op elk van die
gevind elemente toegepas sal word:
forEach('.elem', function() {
// funksie sal op elke element toegepas word
});
Laat die elemente wat by die selekteerder pas, een vir een in die eerste parameter van die callback beland:
forEach('.elem', function(elem) {
console.log(elem); // sal een vir een die gevind elemente vertoon
});
Kom ons gebruik ons funksie om alle
elemente met klas elem te vind en vir elke
gevind element 'n callback toe te pas wat
die teks van elke element sal kwadreer:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Kom ons skryf nou die implementering van die
funksie forEach wat ons beoog het:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Gegee paragrawe. Gebruik die funksie wat ons geskep het, forEach, om vir elke paragraaf 'n uitroepteken aan die einde van sy teks by te voeg.