1

我多年来一直使用 PrototypeJS,并且喜欢它们在 lib 中的模板功能。我现在改用 jQuery,我还是个初学者。我找不到我的问题的解决方案:

我从 ajax 请求中得到一个包含 html 图像标签的 json 对象。看起来像:

<-- some data -->, "del":"<img src=\"img\/icon_delete.png\" class=\"firmenDelZData\" border=\"0\" height=\"17\" id=\"zdataid_13\">"}

当我通过以下调用在 jquery 中获取这些数据时(包括整个 json 对象:

XHR = $.parseJSON( data );
alert( var.del );

我得到一个警告框,显示没有双引号的正常图像标签。但是当我使用 jquery 模板函数获取这个变量时,如下所示:

$.tmpl( "zdTemplate", { "del": firmenzd[i].del } ).appendTo("#zd");

模板引擎使用双引号插入此图像标记,因此浏览器不显示图像,它将标记本身显示为文本......我该如何解决这个问题?

 "<img src=\"img\/icon_delete.png\" class=\"fDelZData\" border=\"0\" height=\"17\" id=\"zdataid_13\"> 

我还有一个问题:为什么我在 jQuery 插件部分找不到 $.tmpl 函数?还有另一种方法可以用 jquery 制作这样的模板吗?

谢谢您的回答

M。

解决方案

经过两个多小时的搜索,我找到了插入带有 .tmpl 功能的 HTML 代码的好标签。我只需要放 {{html del}} 而不是 ${del}。

因此,在定义模板时,我必须按如下方式进行:

`var zdTemplate = '<tr class="ptr zdEntry">' + 
                   '<td class="cellValue fontValue">{{html edit}}</td>' +     
                   '<td class="cellValue fontValue">{{html del}}</td>' + 
                 '</tr>';
$.template( "zdTemplate", zdTemplate );`

模板如下:

          ` $.tmpl( "zdTemplate", {
               "edit": firmenzd[i].edit,
               "del": firmenzd[i].del } ).appendTo("#data");`

希望这对其他人有帮助!

M。

PS:为自己找到了解决方案,我在这里太新了,无法回答我自己的问题

4

0 回答 0