obiectul HTMLcollection[0] continuă să returneze undefined (Programare, Javascript, Html)

Bob John a intrebat.

Să presupunem că avem ceva de genul:

<a href="1" class="my-list">1</a>
<a href="2" class="my-list">2</a>
<a href="3" class="my-list">3</a>

Când încerc ceva de genul

alert(document.getElementsByClassName("my-list"))

obțin object HTMLCollection. Și dacă încerc ceva de genul alert(document.getElementsByClassName("my-list")[0]) obțin undefined. Cum pot obține primul href din listă? Deci, ar fi "1" în acest caz.

3 răspunsuri
Saravana Kumar

Verificați acest lucru în Fiddler. Puneți document.getElementsByClassName("my-list") într-o paranteză rotundă și adăugați-i indexul [0].

Comentarii

  • Ar fi trebuit să menționez că nu voi cunoaște întotdeauna valorile „1”, „2” sau „3”. Ele pot fi orice, dar eu încerc doar să o returnez pe prima (care este „1” în acest exemplu). –  > Por Bob John.
  • @Bob John : [1] nu este o valoare, ci specifică indicele. –  > Por Saravana Kumar.
  • Dacă aveți nevoie să obțineți prima valoare, atunci specificați indexul ca [0]. –  > Por Saravana Kumar.
  • Ați rulat „Run Code snippet” din răspuns? –  > Por Saravana Kumar.
  • @Bob John: Va fi realizat folosind jquery. verificați acest lucru jsfiddle.net/mwpmk9kk/14 –  > Por Saravana Kumar.
Meysam Izadmehr

S-ar putea întâmpla dacă adăugați scriptul în antetul HTML. În acest caz, ați văzut HTMLCollection; cu toate acestea, elementele ar fi goale.

mutați scriptul în partea de jos a corpului HTML.

Michael Riccio

De asemenea, asigurați-vă că vă verificați codul, am avut această problemă de la utilizarea querySelector. Dacă folosiți querySelector, acesta returnează doar un singur element (care va returna nedefinit la iterație), în timp ce querySelectorAll creează o colecție html prin care puteți itera.