Как выполнить document.querySelectorAll в текстовой строке, не вставляя ее в DOM

var html = '<p>sup</p>'

Я хочу запустить document.querySelectorAll('p') в этом тексте, не вставляя его в dom.

В jQuery вы можете сделать $(html).find('p')

Если это невозможно, то какой самый чистый способ сделать временную вставку, убедившись, что она ничего не мешает. то только запрос этого элемента. затем удалите его.

(я делаю запросы ajax и пытаюсь разобрать возвращенный html)

Ответ 1

С IE 10 и выше вы можете использовать объект DOM Parser для синтаксического анализа DOM непосредственно из HTML.

var parser = new DOMParser();
var doc = parser.parseFromString(html, "text/html");
var paragraphs = doc.querySelectorAll('p');

Ответ 2

Вы можете создать временный элемент, добавить html к нему и запустить querySelectorAll

var element = document.createElement('div');
element.insertAdjacentHTML('beforeend', '<p>sup</p>');
element.querySelectorAll('p')