使用jQuery解析无效的HTML,而不添加到DOM?

Jam*_*rgy 5 jquery dom

我正在研究一个使用HTML模板的jQuery插件.最终用户可以传入一个查看最简单级别的模板,如下所示:

<template>
   <img src="/images/image_{field_id}.gif">
</template>
Run Code Online (Sandbox Code Playgroud)

该模板应该被注释掉,以便浏览器不会尝试渲染任何东西,我的代码只是将注释的内部提取为文本,然后使用jQuery将其解析为元素树.然后我做了具体的替换.

我记得读过jQuery只是使用DOM来解析HTML,例如当你这样做时

var x = $(html_string);
Run Code Online (Sandbox Code Playgroud)

jQuery实际上只是将它添加到DOM来获取元素.上面的简单操作不会呈现任何内容(直到我实际添加x到DOM中的某个地方),但是此代码导致浏览器尝试加载图像目标 - 即使我从未将其添加到DOM.以下是此效果的简单演示:http://jsfiddle.net/b5HGU/

所以基本上 - 有什么方法可以解决这个问题吗?你可以src使用jQuery 创建一个带有已知坏标签的"image"元素,但是在你真正将它添加到真正的DOM之前不要加载它吗?

另一个替代方法是使用jQuery构造DOM 之前,模板上完成所有解析,作为字符串.这当然是可行的,但实际上模板有许多不同的组件,在输出解析版本之前使用jQuery选择器将其转换为可导航树非常方便.我必须基本上编写自己的XML解析器.在我这么做之前,只是想知道是否有任何简单的解决方案.

SLa*_*aks 3

尝试调用$.parseXML,它应该将其视为原始标记而不解释任何内容。

我怀疑它需要格式良好。