Element.getElementsByTagName()

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

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] Prior to Firefox 19, this method was returning a NodeList; it was then changed to reflect the spec change.

[2] Initially, this method was returning a NodeList; it was then changed to reflect the spec change.

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

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