Virhe elementtien hakemisessa JavaScriptissä
Joskus aloittelevat ohjelmoijat tekevät virheen
käyttämällä DOM-elementtiryhmän hakemiseen
menetelmää querySelector menetelmän
querySelectorAll sijaan.
Katsotaanpa tämän virheen tunnusomaisia piirteitä. Olkoon annettuna kappaleet:
<p>1</p>
<p>2</p>
<p>3</p>
Eräs ohjelmoija päätti hankkia ja tulostaa konsoliin näiden kappaleiden tekstit. Hän tallensi viittaukset näihin elementteihin muuttujaan käyttämällä virheellisesti väärää menetelmää:
let elems = document.querySelector('p');
Sitten hän päätti käydä kappaleet läpi silmukalla ja tulostaa jokaisen kappaleen tekstin konsoliin:
for (let elem of elems) {
console.log(elem.textContent);
}
Tuloksena konsoliin ilmestyy tunnusomainen
virhe elems is not iterable. Se kertoo,
että muuttuja elems ei ole iteroitavissa,
eli se ei ole taulukko tai jotain,
jota voidaan käydä läpi for-of -silmukalla.