Overføring av callback for å jobbe med DOM på JavaScript
La oss si at vi har en gruppe DOM-elementer:
<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>
La oss lage en funksjon forEach som
vil ta en selektor for en gruppe elementer som første parameter,
og en callback-funksjon som andre parameter,
som vil bli brukt på hvert av de funnet elementene etter tur:
forEach('.elem', function() {
// funksjonen vil bli brukt på hvert element
});
La elementene som matcher selektoren, komme inn i den første parameteren til callbacken etter tur:
forEach('.elem', function(elem) {
console.log(elem); // vil skrive ut de funnet elementene etter tur
});
La oss ved hjelp av vår funksjon finne alle
elementene med klassen elem og for hvert
funnet element bruke en callback, som
vil kvadrere teksten til hvert element:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
La oss nå skrive implementasjonen av funksjonen
forEach som vi har tenkt oss:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Det er gitt avsnitt. Bruk funksjonen forEach som vi har laget for å legge til et utropstegn på slutten av teksten til hvert avsnitt.