我有一个看起来像这样的模板:
<div id="PopUpTemplate" style="display: none">
<tr><td>${Key}</td><td>${Value}</td></tr>
</div>
我希望将其附加到表格中:
<div id="MessageBox">
<table>
</table>
</div>
然后使用Jquery UI对话框将其显示为弹出窗口,我这样做:
$('#PopUpTemplate').tmpl(data).appendTo("#MessageBox table");
$('#MessageBox').dialog({
autoOpen: true,
modal: true,
closeOnEscape: true,
buttons: { 'Ok': function () { $(this).dialog("close"); } },
position: 'center'
});
我有两个问题:
第一个是在结束</table>
标记
第二个是当我多次调用它时,我会在表格中添加更多数据。但我想首先清除所有现有行,然后附加新集
答案 0 :(得分:0)
这是相当新的但是在弄乱了这个fiddle之后,我想你可能在做模板错误了。如果存储在您的页面上的模板将被大多数浏览器清理,因为它不是有效的html,对于chrome的实例,tr / td标签被剥离,然后您的模板变成单个div。这个div然后被正确插入并且可能被浏览器清理并放在表之后,因为插入一行是没有意义的(因为它不是)。
对于替换当前行,一旦您将模板作为模板工作,您只需使用.html
选择器上的#MessageBox table
替换当前行,而不是使用appendTo
。< / p>
所有这一切,没有看到更多的背景我不能完全确定这已经回答了你的问题。或许创造一个小提琴,这样我们就能看到究竟发生了什么。