Jquery模板 - 在表元素中追加表行并首先清除所有现有行

时间:2012-04-12 19:35:54

标签: javascript jquery jquery-templates

我有一个看起来像这样的模板:

<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>标记

之后附加模板

第二个是当我多次调用它时,我会在表格中添加更多数据。但我想首先清除所有现有行,然后附加新集

1 个答案:

答案 0 :(得分:0)

这是相当新的但是在弄乱了这个fiddle之后,我想你可能在做模板错误了。如果存储在您的页面上的模板将被大多数浏览器清理,因为它不是有效的html,对于chrome的实例,tr / td标签被剥离,然后您的模板变成单个div。这个div然后被正确插入并且可能被浏览器清理并放在表之后,因为插入一行是没有意义的(因为它不是)。

对于替换当前行,一旦您将模板作为模板工作,您只需使用.html选择器上的#MessageBox table替换当前行,而不是使用appendTo。< / p>

所有这一切,没有看到更多的背景我不能完全确定这已经回答了你的问题。或许创造一个小提琴,这样我们就能看到究竟发生了什么。