Прототипная функция get by tag - PullRequest
       14

Прототипная функция get by tag

1 голос
/ 19 сентября 2008

Как получить элемент или список элементов по имени тега. Возьмите для примера, что я хочу все элементы из <h1></h1>.

Ответы [ 5 ]

6 голосов
/ 19 сентября 2008

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')). Может быть, polyfill Array.from(), если ваш браузер пока не поддерживает его. Я могу очень рекомендовать https://polyfill.io/v2/docs/ (никак не связан)

4 голосов
/ 02 октября 2008

Используйте $$() и передайте селектор CSS.

Прочитайте документацию Прототип API для $$()

Это дает вам больше возможностей, чем просто имена тегов. Вы можете выбирать по классу, родительским / дочерним отношениям и т. Д. Он поддерживает больше селекторов CSS, чем ожидается от обычного браузера.

1 голос
/ 26 сентября 2012

Вы также можете использовать $$(tag-name)[n] для получения определенного элемента из коллекции.

1 голос
/ 06 октября 2008

Матиас Кестенхольц:

getElementsByTagName возвращает объект NodeList, который похож на массив, но не является массивом, это живой список.

var test = document.getElementsByTagName('a');
alert(test.length); // n
document.body.appendChild(document.createElement('a'));
alert(test.length); // n + 1
0 голосов
/ 10 октября 2008

Если вы используете getElementsByTagName, вам нужно обернуть его в $ A (), чтобы вернуть массив. Тем не менее, вы можете просто сделать $$ ('a'), как подсказал нервный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...