可以通过在Javascript中从字符串加载HTML来创建自定义“DOM”吗?

时间:2010-10-17 09:39:46

标签: javascript jquery html dom document

我正在尝试在浏览器中解析HTML。浏览器接收2个HTML文件作为字符串,例如。 HTML1和HTML2。

我现在需要解析这些“文档”,就像解析当前文档一样。这就是为什么我想知道是否可以基于这些HTML字符串创建自定义文档(这些字符串由服务器或用户提供)。

因此,例如以下内容有效: $(html1Document)$( “#someDivID”)...

如果不清楚,请让我澄清一下。

感谢。

3 个答案:

答案 0 :(得分:3)

var $docFragment = $(htmlString);

$docFragment.find("a"); // all anchors in the HMTL string

请注意,这会忽略所有文档结构标记(<html><head><body>),但任何包含的标记都可用。

答案 1 :(得分:1)

您始终可以将html附加到某个隐藏的div(尽管innerHTML或jQuery .html(..))。它不会被完全视为新文档,但仍可以搜索其内容。

但是,它有一些副作用。例如,如果您的html定义了任何script标记,则会加载它们。此外,浏览器可能(也可能会)删除htmlbody和类似标记。

修改
如果您特别需要title和类似标记,则可以尝试使用iframe加载服务器中的内容。

答案 2 :(得分:1)

使用jQuery,你可以这样做:

$(your_document_string).someParsingMethod().another();