Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

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

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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; и был затем изменен, чтобы соответстовать спецификации.

Метки документа и участники

Внесли вклад в эту страницу: dedotmoroz, greyHorseM
Обновлялась последний раз: dedotmoroz,