Prototype erhalten, indem Tag-Funktion
-
01-07-2019 - |
Frage
Wie erhalte ich ein Element oder Elementliste von seinem Tag-Namen. Nehmen Sie zum Beispiel, dass ich alle Elemente aus <h1></h1>
will.
Lösung
document.getElementsByTagName ( 'a') gibt einen Array. Schauen Sie hier für weitere Informationen: http://web.archive.org/web/20120511135043/https://developer.mozilla.org/en/DOM/element.getElementsByTagName
Änderung: Wenn Sie ein echtes Array wollen, sollten Sie so etwas wie Array.from(document.getElementsByTagName('a'))
verwenden, oder in diesen Tagen würden Sie vermutlich Array.from(document.querySelectorAll('a'))
wollen. Vielleicht POLYfill Array.from()
, wenn Ihr Browser noch nicht unterstützt. Ich kann https://polyfill.io/v2/docs/ sehr viel (nicht verbunden in jede mögliche Weise)
Andere Tipps
Mit $$()
und übergibt in einem CSS-Selektor.
Lesen Sie die Prototype API-Dokumentation für $$()
Dies gibt Ihnen mehr Leistung mehr als nur Tag-Namen. Sie können nach Klasse auswählen, Eltern / Kind-Beziehungen, usw. Es ist mehr CSS-Selektoren unterstützt als die gängigen Browser zu erwarten kann.
Matthias Kesten:
getElementsByTagName gibt ein NodeList Objekt, das Array-artiges ist aber kein Array, es ist eine Live-Liste.
var test = document.getElementsByTagName('a');
alert(test.length); // n
document.body.appendChild(document.createElement('a'));
alert(test.length); // n + 1
Sie können auch $$(tag-name)[n]
verwenden, um bestimmtes Element aus der Sammlung zu erhalten.
Wenn Sie getElementsByTagName verwenden, werden Sie wickeln müssen, um es in $ A () ein Array zurück. Allerdings können Sie einfach tun $$ ( ‚a‘) als nertzy vorgeschlagen.