Грешка при работа с масив от елементи в JavaScript
Понякога начинаещите програмисти се опитват да работят с масив от елементи, сякаш имат само един елемент. Нека да видим в какво се състои тази грешка.
Нека са дадени параграфи:
<p>1</p>
<p>2</p>
<p>3</p>
Нека някой програмист е решил да запише в текста на всеки параграф една и съща стойност. За целта той е получил препратки към тези елементи в променлива:
let elems = document.querySelectorAll('p');
След това нашият програмист погрешно е взел и се е обърнал към нашата променлива така, сякаш в нея се съдържа един елемент, а не масив. В резултат текстът на параграфите няма да се промени, но, което е характерно, и грешка в конзолата няма да има:
elems.textContent = '!';
Правилното решение тук ще бъде да се обходи масивът от елементи с цикъл и отделно за всеки елемент да се извърши необходимата операция:
for (let elem of elems) {
elem.textContent = '!';
}