Chyba při práci s polem prvků v JavaScriptu
Někdy začínající programátoři zkoušejí pracovat s polem prvků, jako by měli jen jeden prvek. Podívejme se, v čem je podstata této chyby.
Předpokládejme následující odstavce:
<p>1</p>
<p>2</p>
<p>3</p>
Předpokládejme, že nějaký programátor se rozhodl zapsat do textu každého odstavce stejnou hodnotu. K tomu získal odkazy na tyto prvky do proměnné:
let elems = document.querySelectorAll('p');
Poté náš programátor chybně přistoupil k naší proměnné tak, jako by obsahovala jeden prvek, a ne pole. Výsledkem je, že text odstavců se nezmění, ale charakteristické je, že ani v konzoli se neobjeví chyba:
elems.textContent = '!';
Správným řešením zde bude projít pole prvků cyklem a pro každý prvek zvlášť provést požadovanou operaci:
for (let elem of elems) {
elem.textContent = '!';
}