我正在尝试编写一段适用于多个页面的js代码。
我打算使用querySelectorAll()从DOM中获取元素。
我需要对这些元素进行排序。为了做到这一点,我可以使用xPath或者选择器(我更喜欢使用选择器,但xPath也可以)。问题是:
querySelectorAll()返回的NodeList中的元素是否按照HTML中标签出现的顺序排序?
注意:我想加上标签: querySelectorAll
我正在尝试编写一段适用于多个页面的js代码。
我打算使用querySelectorAll()从DOM中获取元素。
我需要对这些元素进行排序。为了做到这一点,我可以使用xPath或者选择器(我更喜欢使用选择器,但xPath也可以)。问题是:
querySelectorAll()返回的NodeList中的元素是否按照HTML中标签出现的顺序排序?
注意:我想加上标签: querySelectorAll
document.querySelectorAll("body, head")[0]; //Returned [object HTMLHeadElement]
在HTML文档中,显然<head>
标签出现在<body>
之前。即使选择器显示body
在head
之前,NodeList的第一个元素也是一个<head>
元素。
来自http://www.w3.org/TR/selectors-api/#queryselectorall:
NodeSelector
接口上的querySelectorAll()
方法必须在调用时返回一个NodeList,其中包含节点子树中所有匹配的Element节点,按文档顺序排序。如果没有这样的节点,则该方法必须返回一个空NodeList。