簡體   English   中英

將HTML字符串解析為DOM並將其轉換回字符串

[英]Parse HTML String to DOM and convert it back to string

我有一個HTML string例如'<p><span class="text">Hello World!</span></p>'

我使用DOMParser().parseFromString() HTML string解析為DOM ,因為我想更改某些特定elementsinnerHTML 這就是為什么我將HTML string parseDOM並使用getElementByClassName獲取所有元素並遍歷它們以將其更改為innerHTML 到目前為止,該方法有效。

更改innerHTML ,我嘗試將新的DOM轉換回string 我不知道怎么辦。 我嘗試的是將innerHTMLouterHTML (均嘗試)分配給這樣的變量:

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 我發現有很多innerHTMLouterHTML示例,但就我而言,出了點問題。 有任何想法嗎?

DOMParser總是會給您一個文檔作為回報。 文檔沒有innerHTML屬性,但是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> 如果只想要身體,則:

 const myHtmlString = '<p><span class="text">Hello World!</span></p>' const htmlDom = new DOMParser().parseFromString(myHtmlString, 'text/html'); console.log(htmlDom.body.innerHTML); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM