Using querySelectorAll(). Is the result returned by the method ordered?

The returned node list is ordered. A quick test proved it:

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

Obviously, the <head> tag appears before <body> in a HTML document. The first element of the NodeList is also a <head> element, even if the selector shows body before `head.

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

The querySelectorAll() method on the NodeSelector interface must, when
invoked, return a NodeList containing all of the matching Element
nodes within the node’s subtrees, in document order. If there are no
such nodes, the method must return an empty NodeList.

Leave a Comment