我正在尝试制作一个适用于多个页面的 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]
显然,该<head>
标签出现<body>
在 HTML 文档之前。NodeList 的第一个元素也是一个<head>
元素,即使选择器显示body
在 `head.
来自http://www.w3.org/TR/selectors-api/#queryselectorall:
NodeSelector 接口上的
querySelectorAll()
方法在调用时必须返回一个 NodeList,其中包含节点子树中所有匹配的 Element 节点,按文档顺序排列。如果没有这样的节点,该方法必须返回一个空的 NodeList。