Ответ 1
Возвращаемый список node упорядочен. Быстрый тест показал это:
document.querySelectorAll("body, head")[0]; //Returned [object HTMLHeadElement]
Очевидно, что тег <head>
отображается перед <body>
в документе HTML. Первый элемент NodeList также является элементом <head>
, даже если селектор показывает body
до `head.
Из http://www.w3.org/TR/selectors-api/#queryselectorall:
Метод
querySelectorAll()
на интерфейсе NodeSelector должен, когда вызывается, возвращает NodeList, содержащий все соответствующие элементы узлы в поддеревах node s, в порядке документа. Если нет такие узлы, метод должен возвращать пустой NodeList.