Il prototipo viene ottenuto tramite la funzione tag
-
01-07-2019 - |
Domanda
Come posso ottenere un elemento o un elenco di elementi in base al nome del tag.Prendi ad esempio da cui voglio tutti gli elementi <h1></h1>
.
Soluzione
document.getElementsByTagName('a') restituisce un array.Guarda qui per maggiori informazioni: http://web.archive.org/web/20120511135043/https://developer.mozilla.org/en/DOM/element.getElementsByTagName
Emendamento:Se vuoi un vero array, dovresti usare qualcosa di simile Array.from(document.getElementsByTagName('a'))
, o in questi giorni probabilmente vorresti Array.from(document.querySelectorAll('a'))
.Forse polyfill Array.from()
se il tuo browser non lo supporta ancora.Posso consigliare https://polyfill.io/v2/docs/ moltissimo (non affiliato in alcun modo)
Altri suggerimenti
Utilizzo $$()
e passare un selettore CSS.
Leggi il Documentazione API prototipo per $$()
Questo ti dà più potere oltre ai semplici nomi dei tag.Puoi selezionare per classe, relazioni genitore/figlio, ecc.Supporta più selettori CSS di quanto ci si possa aspettare dal browser comune.
Matthias Kestenholz:
getElementsByTagName restituisce un oggetto NodeList, che è simile ad un array ma non è un array, è un elenco live.
var test = document.getElementsByTagName('a');
alert(test.length); // n
document.body.appendChild(document.createElement('a'));
alert(test.length); // n + 1
Potresti anche usare $$(tag-name)[n]
per ottenere un elemento specifico dalla raccolta.
Se usi getElementsByTagName, dovrai racchiuderlo in $A() per restituire un Array.Tuttavia, puoi semplicemente fare $$('a') come suggerito da Nertzy.