以前,当我需要在字符串中操作某些 html 的内容时,我会做这样的事情
$('<div>').html(someHtmlString).find('#name').text("George").end().html()
这对 html 片段很有用,但在这种特殊情况下,我将 iframe 的内容作为字符串获取 - 所以它是一个代表完整 html文档的字符串,我需要以相同的方式操作它。这个技巧,甚至只是在 jQuery 中包装字符串不再有效。
html = """
<html>
<head>
<style>* { box-sizing: border-box; }</style
</head>
<body style="max-height: 750px">
<style> body { background-color: 'lavender'; }</style>
<div>
<p>Hi</p>
<p id="name">Your Name</p>
</div>
</body>
</html>
"""
$html = $(html)
$html.find('#name').text("George")
console.log $html.html()
如何解析和操作完整的 html 文档?
请注意,头部可能包含样式元素,而主体可能具有我不想丢失的属性。当文档包含 svg 时,我也看到奇怪的序列化。
如果有另一个库可以更有意义地引入这里,我并不热衷于 jQuery