当没有用TABLE标签包装时,jQuery Tmpl删除TR标签内容

时间:2012-11-03 17:03:37

标签: jquery-templates

在大量使用jQuery Tmpl迁移旧的Web界面后,我的一些模板已停止运行。进一步调查显示,不起作用的模板是以TR标记开头和结尾的模板(即表行被附加到现有表)。源文本刚刚被jQuery Tmpl脚本删除!如果我在更广泛的上下文中使用TR标签,例如包裹在表格中等等,一切正常,但只要它们在隔离模板中使用,它们就会被消灭。

工作示例:

<script id="workingTemplate" type="text/x-jQuery-tmpl" >
    <table>
        <tr><td>this works</td></tr>
    </table>
</script>

不工作的例子:

<script id="notWorkingTemplate" type="text/x-jQuery-tmpl" >
    <tr><td>this does not work</td></tr>
</script>

第一个示例在使用Firebug进行检查时呈现完整的HTML代码,后者呈现一个空的SCRIPT标记。

旧的和新的Web界面之间的区别可能与模板有任何关系,这是从jQuery 1.5.2到1.8.2的变化。我没有尝试运行1.7.2以下的任何东西,因为这是添加了.on()函数的地方,并且新框架广泛使用了这个方法。

除了最显而易见的(=改变模板框架到仍然维护的东西)之外,是否有解决此问题的方法?

编辑: 从字符串加载模板时,内容保持不变,

 $.template( "tableRowTemplate",'<tr><td>this works</td></tr>');
 $.tmpl("tableRowTemplate", data).appendTo('TABLE#mytable TBODY');

但遗憾的是我没有好处,因为我的模板比示例(服务器端动态等等)更复杂。它确实提供了一些提示。显然,jQuery Tmpl的初始化会删除内容,如果它不符合我未知的内容。也许是jQuery.fn.domManip?

0 个答案:

没有答案