使用querySelectorAll()。订购的方法返回的结果是?

时间:2011-11-20 18:46:09

标签: javascript css css-selectors selectors-api

我试图制作适用于多个页面的js代码。 我试图使用querySelectorAll()来获取DOM的元素。

我需要订购元素。为了做到这一点,我可以使用xPath或选择器(我更喜欢使用选择器,但xPath也可以)。问题是:
querySelectorAll()返回的NodeList中的元素是否按照标记在HTML中出现的顺序排序?

注意:我想添加标签:querySelectorAll

1 个答案:

答案 0 :(得分:39)

已订购退回的节点列表。快速测试证明了这一点:

document.querySelectorAll("body, head")[0]; //Returned [object HTMLHeadElement]

显然,<head>标记出现在HTML文档中的<body>之前。即使选择器在head之前显示<head>,NodeList的第一个元素也是body元素。

来自http://www.w3.org/TR/selectors-api/#queryselectorall

  

NodeSelector接口上的querySelectorAll()方法必须在何时   调用后,返回包含所有匹配元素的NodeList   节点子树中的节点,文档顺序 。如果没有   这样的节点,该方法必须返回一个空的NodeList。