我有一个 HTML
string
例如'<p><span class="text">Hello World!</span></p>'
我解析这个HTML
string
至 DOM
使用 DOMParser().parseFromString()
,因为我想更改 innerHTML
一些具体的 elements
.这就是为什么我 parse
HTML
string
至 DOM
和 getElementByClassName
我获取所有元素并循环遍历它们以更改它 innerHTML
.这到目前为止有效。
在我更改了 innerHTML
之后, 我尝试转换新的 DOM
回到string
.我不知道怎么办。我尝试的是分配 innerHTML
或 outerHTML
(都试过了)到这样的变量:
const parser = new DOMParser();
const doc = parser.parseFromString("<p>Hello World!</p>", "text/html");
console.log(doc.innerHTML) // undefined
console.log(doc.outerHTML) // undefined
const parser = new DOMParser();
const doc = parser.parseFromString("<p>Hello World!</p>", "text/html");
console.log(doc.innerHTML) // undefined
console.log(doc.outerHTML) // undefined
我总是得到 undefined
.我怎样才能将它解析回 string
?我用 innerHTML
找到了很多例子或 outerHTML
,但就我而言,出了点问题。有什么想法吗?
最佳答案
DOMParser 总是会给你一个文档 作为返回。文档没有 innerHTML
属性(property),但document.documentElement
确实如此,就像在页面的正常 document
中一样对象:
const myHtmlString = '<p><span class="text">Hello World!</span></p>'
const htmlDom = new DOMParser().parseFromString(myHtmlString, 'text/html');
console.log(htmlDom.documentElement.innerHTML);
请注意 <head>
和 <body>
如果您不自己传递这些标签,将为您创建。如果你只想要 body ,那么:
const myHtmlString = '<p><span class="text">Hello World!</span></p>'
const htmlDom = new DOMParser().parseFromString(myHtmlString, 'text/html');
console.log(htmlDom.body.innerHTML);
关于javascript - 将 HTML 字符串解析为 DOM 并将其转换回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57074776/