手动解析DOM树
目的:将HTML字符串解析成document
对象,使其拥有可以操作DOM(Document Object Model)的能力。
废话不多说,上代码:
js
/**
* 解析HTML字符串,返回document对象
*
* @param {string} str 要解析的HTML字符串
* @returns {Document} document
*/
const parseHtmlStr = (str) => {
// 创建一个DOM解析器
const parser = new DOMParser()
// 获取document对象
return parser.parseFromString(str, 'text/html')
}
const str = `
<div class="container">
<h1>DOM Parser</h1>
<ul>
<li>Monday</li>
<li>Tuesday</li>
<li>Wednesday</li>
<li>Thursday</li>
<li>Friday</li>
<li>Saturday</li>
<li>Sunday</li>
</ul>
</div>
`
const doc = parseHtmlStr(str)
doc.querySelectorAll('li').forEach((item) => {
console.log(item.textContent)
})
// 依次打印:
// Monday
// Tuesday
// Wednesday
// Thursday
// Friday
// Saturday
// Sunday