我有一个包含以下文本的字符串:
<!DOCTYPE html>
<html>
<head>
<title>ExtractDiv test</title>
</head>
<body>
<p>Apples and oranges</p>
<div id="main">
<ul style="list-style-type: upper-roman">
<li>Äpfel</li>
<li>Birnen</li>
</ul>
</div>
<p>Men and women</p>
</body>
</html>
现在我需要一个 JavaScript 函数来返回具有特定 ID 的 DOM 元素作为字符串从本文中,例如:
function ExtractElementByIdFromString(HTMLString, IdString)
{
var ExtractedElement = ???(HTMLString, IdString);
return ExtractedElement;
}
因此在这种情况下该函数的结果将是:
<div id="main">
<ul style="list-style-type: upper-roman">
<li>Äpfel</li>
<li>Birnen</li>
</ul>
</div>
这可能吗?
您可以使用本机解析 HTML 字符串DOM解析器 https://w3c.github.io/DOM-Parsing/#the-domparser-interface:
var str = "<!DOCTYPE……………" // your HTML string
var doc = new DOMParser().parseFromString(str, "text/html")
然后只需使用常规 DOM 方法:
console.log( doc.getElementById("main") )
请注意,使用 DOMParser 比在文档的 innerHTML 中的某个位置插入字符串更高效、更安全,因为只会创建结构 —<script>
元素不会被执行,图像不会被加载,CSS不会尝试应用到它,不会发生渲染,等等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)