Вопрос

Как мне получить элемент или список элементов по имени его тега?Возьмем, к примеру, что я хочу, чтобы все элементы из <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'), как предложил нерци.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top