可以在模板之前和之后追加html吗?

时间:2011-06-24 08:52:52

标签: javascript jquery

是否可以在JQuery.tmpl之前和之后附加html?

我想在

中插入一个嵌套表
<table id="accTable">
  <tr class="row" id="12345">
  </tr>
  <!-- New row to be inserted here -->
</table>

所以我已经完成了

var dat = [];
$.each(result, function(key, value){
    dat.push({
    FROM: this.date,
    ID: key,
    });
});

var markup = "<tr> <td>${ID}</td> <td>${FROM}</td> </tr>";

$.template("actTemplate", markup);

$('#'+id).tmpl("actTemplate", dat).after('#'+id);

但不知何故,我需要追加<tr><td><table>并添加</table></td></tr>

我已经考虑过将HTML添加到现有HTML中,但它应该在按下按钮时发生,所以在按下它之前会出现错误。所以我想在插入模板时必须发生追加和前置...?

有关如何解决此问题的任何建议?

更新

在此jsFiffle中,单击“详细信息”时将添加/删除行。这是我要替换的行。

http://jsfiddle.net/littlesandra88/hhMM6/

2 个答案:

答案 0 :(得分:2)

我会这样解决:

//create your wrapping elements
var wrapping_elements = $('<tr><td><table class="new-table"/></td></tr>');
$('#'+id).after(wrapping_elements);

//insert your table data
var template_data = $('#'+id).tmpl("actTemplate", dat);
$('table.new-table').append(template_data);

答案 1 :(得分:2)

你可以这样做:

EDITED

var wrapper = $( '<tr id="details"><td><table></table></td></tr>' );
var wrapperTable = wrapper.find( 'table' );
$.tmpl ("actTemplate", dat ).appendTo( wrapperTable  );

wrapper.insertAfter( '#'+id );