如何在文本字符串上执行document.querySelectorAll而不将其插入DOM

时间:2015-05-04 21:30:00

标签: javascript dom

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

我想在该文本上运行document.querySelectorAll('p')而不将其插入dom。

在jQuery中,您可以执行$(html).find('p')

如果不可能,最简单的方法是做一个临时插入,确保它不会干扰任何事情。然后只查询该元素。然后删除它。

(我正在执行ajax请求并尝试解析返回的html)

2 个答案:

答案 0 :(得分:22)

使用IE 10及更高版本,您可以使用 DOM Parser object 直接从HTML解析DOM。

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

答案 1 :(得分:1)

您可以创建临时元素,向其添加html并运行querySelectorAll

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