Napaka pri dostopu do matrike elementov v JavaScriptu
Včasih začetni programerji poskušajo delati z nizom elementov, kot da imajo en element. Poglejmo, kaj je bistvo te napake.
Naj bodo podani odstavki:
<p>1</p>
<p>2</p>
<p>3</p>
Recimo, da se je neki programer odločil zapisati v besedilo vsakega odstavka enako vrednost. Za to je dobil povezave na te elemente v spremenljivko:
let elems = document.querySelectorAll('p');
Nato je naš programer napako naredil tako, da je v naši spremenljivki dostopal, kot da bi vseboval en element, ne pa matrike. Posledično se besedilo odstavkov ne bo spremenilo, vendar, kar je značilno, tudi napake v konzoli ne bo:
elems.textContent = '!';
Pravilna rešitev tukaj bi bila iterirati skozi matriko elementov z zanko in za vsak element posebej izvesti zahtevano operacijo:
for (let elem of elems) {
elem.textContent = '!';
}