Šta je novo?

[JS] document.getElementsByClassName()[] vraca undefined

MostWanted

Cenjen
Učlanjen(a)
12.07.2013
Poruke
668
Poena
195
Moja oprema  
CPU & Cooler
Ryzen 5600 & BeQuiet Pure Rock Slim 2
Matična ploča
Asus B550-PRO
RAM
16GB DDR4 3200MHz Kingston
GPU
MSI Radeon 6700XT 12GB
Storage
1TB nvme SSD Kingston
Zvuk
Tannoy Gold 5
PSU
Fractal ION Gold 750W
Kućište
Cooler Master Silencio S600 + BeQuiet Silent Wings 3 120mm
Monitor
LG UltraGear 27'' 1440p 165Hz
Miš & tastatura
Logitech G Pro tastatura i mis
Kod:
<td class="preview"></td>

Kod:
var x = document.getElementsByClassName("preview");
var y = x[0];

console.log(x);
console.log(y);


x mi vraca kao HTML collection duzine 1, ja pokusavam da pristupim prvom clanu tako da koristim indeks 0, ali za vrednost y mi izbacuje undefined. Zasto je undefined ako bi to trebalo da je element td? Cilji mi je da mu zakacim click pomocu addEventListener ali mi javlja gresku:

Cannot read property 'addEventListener' of undefined.

Probao stackoverflow, niko nije dao dobar odgovor, pa rekoh da probam ovde... Totalno sam zbunjen.
 
Poslednja izmena:
Poslednja izmena:
https://jsfiddle.net/e9fLaaox/

Ovo?

EDIT ~ Ako zelis da selektujes vise elemenata mozes koristiti document.querySelectorAll().

https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector
https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll

Usput, ja sam koristio "div" element posto "td" mozes da selektujes jedino referenciranjem preko parent elementa tipa preko tabele parenta. Nesto ovako:

https://jsfiddle.net/gjpr0fr7/

Ne razumem, kod radi ispravno ako ubacim sve to u jednu funkciju i onda je ucitam tek na body onload, i to preko html-a. Bilo sta sto radim u JS vraca undefined osim ako sam ga striktno stavio u funckiju i onda pozvao tu funckiju u html fajlu body onload = "funckija()".
window.addEventListener() Takodje ne radi, iako bi to valjda trebalo da bude isto. :mad:

EDIT: Upravo sam nasao moguce resenje, nisam jos siguran da je to to, ali 99%... script tag mi je unutar head fajla... Stvarno glupa pocetnicka greska, uopste nisam znao da ima veze gde je, ali da, ima logike... Ako ga stavim na kraju fajla, to bi trebalo da bude to...
You must spread some Reputation around before giving it to mrtavker again.
 
Poslednja izmena:
Da, da. Ako skriptu ukljucujes u head-u moras koristiti onload jer ce ti biti skripta servirana prije nego sto se stranica renderuje, bolje je ukljuciti je na dnu body-ija da se skripta ucita nakon rendera stranice.

:wave:
 
Nazad
Vrh Dno