РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
2 of 17 menu

Грешка при получаване на елемент в JavaScript

Понякога начинаещите програмисти правят грешка, като използват за получаване на един DOM елемент метода querySelectorAll вместо метода querySelector.

Нека да разгледаме характерните особености на тази грешка. Нека имаме параграф:

<p>text</p>

Някой програмист решил да получи и промени текста на този параграф. За целта той получил препратка към този елемент в променлива, като погрешно използвал неподходящия метод:

let elem = document.querySelectorAll('p');

След това програмистът се опитал да промени текста на параграфа. Обаче, текстът на параграфа не се променил:

elem.textContent = '!!!'; // не проработи

При това никаква грешка в конзолата не се появила. Работата е там, че била извършена допустима операция, но не върху един елемент, а върху група. А да прочетеш или промениш текста на група елементи директно не се може - само чрез обхождане с цикъл и достъпване до всеки елемент поотделно.

Как да открием грешката

Нека да видим как програмистът трябва да действа, за да открие тази грешка. Всъщност, имайки известен опит, тя лесно се открива по характерните признаци.

Но да приемем, че това не се е случило. Тогава първото действие на програмиста при търсене на грешки трябва да е извеждане на стойностите на променливите в конзолата. В неговия случай има само една променлива - elem. Трябва да изведем стойността на тази променлива и да погледнем какво съдържа тя:

let elem = document.querySelectorAll('p'); console.log(elem); // ще изведе масив, а не един елемент

В конзолата веднага се вижда, че в променливата няма един елемент, а масив. Това веднага дава очевидна подсказка, че е допусната грешка в метода за получаване на елемента.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне