getElementsByName()是否有保证订购?

时间:2010-06-22 18:25:58

标签: javascript dom

Javascript的getElementsByName(...)返回的值是否保证与它们​​在DOM中出现的顺序相同?

4 个答案:

答案 0 :(得分:2)

getElementsByName(name),名称是必需的,因此名称顺序是无关紧要的。

编辑:我检查了规格并没有看到任何可以保证订单的信息,但我自己从未见过它。

规格:http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259

答案 1 :(得分:2)

由于W3C DOM spec对类似的getElementsbyTagName

说了以下内容
  

的getElementsByTagName       以文档顺序返回具有给定标记名称的所有元素的NodeList,并包含在document.Blockquote

我只能假设getElementsByName在大多数实现中也会使用文档顺序。

答案 2 :(得分:0)

getElementsByName应该返回在DOM中找到它们的元素的顺序。

答案 3 :(得分:0)

如果我阅读this中的句子

"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顺序返回的效率的原因。实际上,我从不会依赖它。