Element.getElementsByTagName()
метод возвращает живую коллекцию элементов HTMLCollection
, учитывая имя тэга. Поиск осуществляется в поддереве указанного элемента, в результат поиска не попадает сам элемент, в поддереве которого осуществлялся поиск. Возвращает живой список, который автоматически обновляется при изменении DOM. Поэтому не нужно вызывать метод Element.getElementsByTagName()
несколько раз с одними и теми же аргументами, содержимое списка обновляется автоматически.
При вызове на HTML-элементе в HTML-документе метод getElementsByTagName
переводит аргумент по которому осуществляется поиск (имя тега) в нижний регистр до того как начать поиск. Это нежелательно, когда необходимо использовать метод для поиска SVG элементов, где в наименовании тега может использоваться верблюжья (camel-cased) нотация. В этом случае правильно использовать метод Element.getElementsByTagNameNS()
.
Element.getElementsByTagName
похож на Document.getElementsByTagName()
, за исключением того, что поиск осуществляется среди потомков конкретного элемента, а не во всём HTML-документе.
Синтаксис
elements = element.getElementsByTagName(tagName)
elements
это живая коллекцияHTMLCollection
найденных элементов в том порядке, в котором они были найдены в дереве. Если не найдено ни одного эелемента, удовлетворяющего условиям поиска, то коллекция будет пустой.element
это элемент в котором будет осуществляться поиск. Обратите внимание, что поиск будет осуществляться только в потомках этого элемента. Сам элемент не будет включен в результат поиска.tagName
определяет имя тега для поиска. Если значением tagName будет"*", то в результате будут получены все потомки элемента по которому осуществляется поиск
. Для совместимости с XHTML следует использовать нижний регистр в имени тега.
Пример
// check the alignment on a number of cells in a table.
var table = document.getElementById("forecast-table");
var cells = table.getElementsByTagName("td");
for (var i = 0; i < cells.length; i++) {
var status = cells[i].getAttribute("data-status");
if ( status == "open" ) {
// grab the data
}
}
Спецификации
Specification | Status | Comment |
---|---|---|
DOM Определение 'Element.getElementsByTagName()' в этой спецификации. |
Живой стандарт | Changed the return value from NodeList to HTMLCollection |
Document Object Model (DOM) Level 3 Core Specification Определение 'Element.getElementsByTagName()' в этой спецификации. |
Устаревшая | No change from Document Object Model (DOM) Level 2 Core Specification |
Document Object Model (DOM) Level 2 Core Specification Определение 'Element.getElementsByTagName()' в этой спецификации. |
Устаревшая | No change from Document Object Model (DOM) Level 1 Specification |
Document Object Model (DOM) Level 1 Specification Определение 'Element.getElementsByTagName()' в этой спецификации. |
Устаревшая | Initial definition |
Совместимость браузеров
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 1.0 [2] | (Да) | (Да) [1] | 5.5 | (Да) [2] | (Да) [2] |
getElementsByTagName("*") | 1.0 | (Да) | (Да) | 6.0 | (Да) | (Да) |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Да) | (Да) | (Да) [1] | (Да) | (Да) | (Да) |
[1] До Firefox 19 этот метод возвращал NodeList
; и был затем изменен, чтобы соответстовать спецификации.
[2] Первоначально этот метод возвращал NodeList
; и был затем изменен, чтобы соответстовать спецификации.