Обход DOM в реализациях javascript getElementsByTagName

#javascript #dom #tree-traversal

#javascript #dom #обход дерева

Вопрос:

Какие методы обхода DOM (дерева) используют реализации функции javascript getElementsByTagName? Я спрашиваю, потому что я хотел бы быть уверенным, что массив, возвращаемый getElementsByTagName, содержит элементы DOM в порядке, примерно от верхней части документа до нижней, что имело бы место, например, при поиске в глубину дерева DOM.

Комментарии:

1. По какой-то причине я всегда предполагал, что для этого используется алгоритм BFS. Если вы беспокоитесь о порядке, я чувствую, что вам может потребоваться применить некоторые дополнительные условия к вашему алгоритму, чтобы ускорить его

Ответ №1:

Вы можете узнать подобные вещи, прочитав спецификацию

getElementsByTagName

Возвращает список узлов всех элементов-потомков с заданным именем тега в том порядке, в котором они встречаются при обходе этого дерева элементов в предварительном порядке.

Комментарии:

1. @celeritas — нет проблем, если вам не нужно, чтобы список узлов был активным, querySelectorAll на самом деле имеет лучшую поддержку в IE.