Element.getElementsByTagName()

Element.getElementsByTagName() метод возвращает живую коллекцию элементов HTMLCollection , учитывая имя тэга. Поиск осуществляется в поддереве указанного элемента, в результат поиска не попадает сам элемент, в поддереве которого осуществлялся поиск. Возвращает живой список, который автоматически обновляется при изменении DOM. Поэтому не нужно вызывать метод Element.getElementsByTagName() несколько раз с одними и теми же аргументами, содержимое списка обновляется автоматически.

При вызове на HTML-элементе в HTML-документе метод  getElementsByTagName переводит аргумент по которому осуществляется поиск (имя тега) в нижний регистр до того как начать поиск. Это нежелательно, когда необходимо использовать метод для поиска SVG элементов, где в наименовании тега может использоваться верблюжья (camel-cased) нотация. В этом случае правильно использовать метод Element.getElementsByTagNameNS() (en-US).

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

Совместимость браузеров

BCD tables only load in the browser