我多年来一直使用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进行这样的模板化吗?
感谢您的回答
微米。
解
经过两个小时的搜索后,我发现了一个很棒的标签,可以插入带有.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");`
希望这有助于其他人!
微米。
PS:为我自己找到了解决方案,我现在太新了,无法回答我自己的问题