Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
2 of 17 menu

Greška pri dobijanju elementa u JavaScript-u

Ponekad programeri početnici prave grešku, koristeći za dobijanje jednog DOM elementa metod querySelectorAll umesto metoda querySelector.

Hajde da pogledamo karakteristične osobine ove greške. Neka je dat paragraf:

<p>tekst</p>

Izvesni programer je rešio da dobije i promeni tekst ovog paragrafa. Za to je dobio referencu na ovaj element u promenljivu, pogrešno koristivši pogrešan metod:

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

Zatim je programer pokušao da promeni tekst paragrafa. Međutim, tekst paragrafa se nije promenio:

elem.textContent = '!!!'; // nije uspelo

Pri tome nijedna greška u konzoli se nije pojavila. Stvar je u tome da je izvršena dopuštena operacija, ali ne nad jednim elementom, već nad grupom. A pročitati ili promeniti tekst grupe elemenata tako jednostavno ne može - samo prelistavši ih petljom i obrativši se svakom elementu pojedinačno.

Kako otkriti grešku

Hajde da pogledamo, kako programer treba da postupi, da bi otkrio ovu grešku. Zapravo, posedujući određeno iskustvo, lako se otkriva po karakterističnim znakovima.

Neka se to, međutim, nije desilo. Tada prva radnja programera pri traženju grešaka treba da bude ispisivanje vrednosti promenljivih u konzolu. U njegovom slučaju postoji samo jedna promenljiva - elem. Potrebno je ispisati vrednost ove promenljive i pogledati, šta u njoj leži:

let elem = document.querySelectorAll('p'); console.log(elem); // ispisaće niz, a ne jedan element

U konzoli se odmah vidi, da u promenljivoj nije jedan element, već niz. Ovo odmah daje očiglednu naznaku o tome, da je dopuštena greška u metodu za dobijanje elementa.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij