Есть ли гарантированный порядок на getElementsByName ()? - PullRequest
2 голосов
/ 22 июня 2010

Гарантируются ли значения, возвращаемые getElementsByName (...) Javascript, в том же порядке, в котором они появляются в DOM?

Ответы [ 4 ]

2 голосов
/ 22 июня 2010

Поскольку спецификация W3C DOM говорит следующее для аналогичного getElementsbyTagName

getElementsByTagName Возвращает NodeList всех элементов в порядке документов с заданным именем тега и содержатся вthe document.Blockquote

Я могу только предположить, что getElementsByName также будет использовать порядок документов в большинстве реализаций.

2 голосов
/ 22 июня 2010

с getElementsByName(name), имя является обязательным, поэтому порядок имен не имеет значения.

РЕДАКТИРОВАТЬ: Я проверил спецификацию и не вижу ничего, что могло бы гарантировать заказ, но я никогда не видел его вне порядка.

Спецификация: http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259

0 голосов
/ 22 июня 2010

Если я прочитаю предложение из этого , в котором говорится

"The getElementsByName method works differently in different browsers. In Internet Explorer and Opera, it searches and returns the elements matched by id *and* name attributes. [...]"

Не думаю, что это должно быть правдой, если браузеры ведут себя иначе. Я предполагаю, что это самый простой способ добавить все найденные элементы в список, а затем напрямую вернуть его. Это скорее причина для эффективности, что он возвращается в DOM-порядке. На самом деле, я бы никогда на это не положился.

0 голосов
/ 22 июня 2010

getElementsByName должен возвращать порядок элементов, в которых они были найдены в DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...