Virhe JavaScript-taulukkoelementtien käsittelyssä
Joskus aloittelevat ohjelmoijat yrittävät käsitellä elementtitaulukkoa kuin siinä olisi vain yksi elementti. Katsotaan, mikä on tämän virheen ydin.
Olkoon annettuna kappaleet:
<p>1</p>
<p>2</p>
<p>3</p>
Olkoon, että eräs ohjelmoija päätti kirjoittaa jokaisen kappaleen tekstiin saman arvon. Tätä varten hän sai viittaukset näihin elementteihin muuttujaan:
let elems = document.querySelectorAll('p');
Sitten ohjelmoijamme otti virheellisesti ja viittasi muuttujaamme niin kuin siinä olisi yksi elementti, eikä taulukko. Tämän seurauksena kappaleiden teksti ei muutu, mutta ominaista on, että konsoliin ei tule virhettäkään:
elems.textContent = '!';
Oikea ratkaisu tässä olisi käydä elementtitaulukko läpi silmukalla ja suorittaa kullekin elementille erikseen tarvittava toimenpide:
for (let elem of elems) {
elem.textContent = '!';
}