我正在运行API以从外部系统检索电子邮件。我设法从返回的JSON中获取HTML代码并将其存储在变量中。现在,我想在此HTML上运行一些其他操作-例如,使用
[data-type="whatever"]
。
在html文件中会很容易:
var x = document.querySelectorAll('[data-type="whatever"]');
但是,我要使用的HTML文档存储在变量中,因此我在API中编写的代码无法将其识别为文档。我该怎么做?香草JS有什么建议吗?
答案 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();
这可能对您有用,因为我正在发送电子邮件以通过发票模板,因此请尝试此操作。