Прототип получить с помощью функции тега
-
01-07-2019 - |
Вопрос
Как мне получить элемент или список элементов по имени его тега?Возьмем, к примеру, что я хочу, чтобы все элементы из <h1></h1>
.
Решение
document.getElementsByTagName('a') возвращает массив.Смотрите здесь для получения дополнительной информации: http://web.archive.org/web/20120511135043/https://developer.mozilla.org/en/DOM/element.getElementsByTagName
Поправка:Если вам нужен реальный массив, вы должны использовать что-то вроде Array.from(document.getElementsByTagName('a'))
, или в наши дни вы, вероятно, захотели бы Array.from(document.querySelectorAll('a'))
.Может быть, полифилл Array.from()
если ваш браузер еще не поддерживает это.Я могу порекомендовать https://polyfill.io/v2/docs/ очень сильно (никоим образом не связан)
Другие советы
Использование $$()
и передайте в CSS-селектор.
Прочтите Документация по прототипу API для $$()
Это дает вам больше возможностей, чем просто названия тегов.Вы можете выбрать по классу, отношениям родитель / потомок и т.д.Он поддерживает больше CSS-селекторов, чем можно ожидать от обычного браузера.
Matthias Kestenholz:
getElementsByTagName возвращает объект NodeList, который похож на массив, но не является массивом, это живой список.
var test = document.getElementsByTagName('a');
alert(test.length); // n
document.body.appendChild(document.createElement('a'));
alert(test.length); // n + 1
Вы также могли бы использовать $$(tag-name)[n]
чтобы получить определенный элемент из коллекции.
Если вы используете getElementsByTagName , вам нужно будет обернуть его в $A(), чтобы вернуть массив.Однако вы можете просто сделать $$('a'), как предложил нерци.