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>. ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top