Feil ved håndtering av elementmatrise i JavaScript
Noen ganger prøver nybegynnere programmerere å håndtere en matrise av elementer som om de hadde ett enkelt element. La oss se hva som er essensen av denne feilen.
Anta at vi har følgende avsnitt:
<p>1</p>
<p>2</p>
<p>3</p>
Anta at en programmerer bestemte seg for å skrive den samme verdien inn i teksten til hvert avsnitt. For å gjøre dette fikk hen lenker til disse elementene i en variabel:
let elems = document.querySelectorAll('p');
Deretter tok vår programmerer feil og henvendte seg til variabelen vår på en slik måte, som om den inneholdt ett element, og ikke en matrise. Som et resultat vil ikke teksten i avsnittene endre seg, men det er karakteristisk at det heller ikke vil være noen feil i konsollen:
elems.textContent = '!';
Den riktige løsningen her vil være å gå gjennom matrisen av elementer med en løkke og for hvert enkelt element utføre den nødvendige operasjonen:
for (let elem of elems) {
elem.textContent = '!';
}