如何从HTML中获取存储在变量中的元素

时间:2018-12-20 12:33:08

标签: javascript html

我正在运行API以从外部系统检索电子邮件。我设法从返回的JSON中获取HTML代码并将其存储在变量中。现在,我想在此HTML上运行一些其他操作-例如,使用 [data-type="whatever"]
 在html文件中会很容易:

var x = document.querySelectorAll('[data-type="whatever"]');

但是,我要使用的HTML文档存储在变量中,因此我在API中编写的代码无法将其识别为文档。我该怎么做?香草JS有什么建议吗?

4 个答案:

答案 0 :(得分:1)

如果您使用innerHTML,该怎么办?也许我不完全理解这个问题。

答案 1 :(得分:0)

您可以尝试这样的事情。

let rawDoc = '<html><head><title>Working with elements</title></head><body><div id="div1">The text above has been created dynamically.</div></body></html>'

let doc = document.createElement('html');
doc.innerHTML = rawDoc;
let div1 = doc.querySelector('#div1');
console.log(div1)

答案 2 :(得分:0)

由于您没有文档,因此有2个选择。

1. Use regex to get what you need (something like /<.+>.+ data-type="whatever".+<\/.+>/gi) should do (but for an exact match you may need to make something better).


2. Insert the html in a hidden part of the dom and select what you need from it (like in Zohir answer - he provided a good example).

答案 3 :(得分:0)

我使用以下带有angular的代码将整个html内容存储在变量中,并将其作为参数传递给调用API。

var htmlBody = $('<div/>').append($('#htmlBody').clone()).html();

这可能对您有用,因为我正在发送电子邮件以通过发票模板,因此请尝试此操作。