【发布时间】:2011-07-16 19:20:37
【问题描述】:
我有一个包含以下内容(innerHTML)的文本区域:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
</body>
</html>
为了准备使用 jQuery 解析 DOM 的内容,我执行以下操作(temp 只是一个 div):
$('#temp').append(input.val());
console.log($('#temp').html());
正如jQuery object from complete HTML document 所指出的,head、body、html 和 doctype 标签都不见了:
<meta charset="utf-8">
<title></title>
那么有没有其他方法可以不附加到 DOM 并且仍然可以使用 DOM 元素? iframe 可能是最后的手段,但那会很丑。
【问题讨论】:
-
你到底想完成什么?
-
您可以将它们放在一个变量中,甚至可以使用data 存储它们
-
@DADU 您想对该 HTML 字符串进行哪些更改?能举几个例子吗?
-
@DADU jQuery 无法解析 HTML、HEAD、BODY 和 DOCTYPE 元素。因此,您不能在您的情况下使用 jQuery 的 HTML 解析能力。您需要的是一个可以将完整的 HTML 字符串解析为文档片段对象的脚本。我不知道有这样的脚本。
-
@DADU 查看这篇文章:developer.mozilla.org/en/Code_snippets/HTML_to_DOM
标签: jquery parsing dom innerhtml