Подтвердить что ты не робот

Использование querySelectorAll(). Получен ли результат, возвращенный методом заказа?

Я пытаюсь создать js-код, который работает с несколькими страницами. Я пытаюсь использовать querySelectorAll() для получения элементов из DOM.

Мне нужны элементы, которые нужно упорядочить. Для этого я могу использовать xPath или селекторов (я бы предпочел использовать селектор, но xPath тоже хорошо). Проблема заключается в следующем:
Являются ли элементы в NodeList возвращенными querySelectorAll() упорядоченными относительно порядка, в котором теги отображаются в HTML?

Примечание. Я хотел бы добавить тег: querySelectorAll

4b9b3361

Ответ 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.