0

我有一个方法可以动态创建一个表并将其分配给一个局部变量:

 var content = $('<table id="gvCapitalByYear" cellspacing="0"
       cellpadding="2"/>').append('<tbody/>');

然后我有一个循环,旨在将行添加到上面创建的表中。但我无论如何都做不到。我尝试了以下方法:

content=$('#gvCapitalByYear').find('tbody').append('<tr/>');

但它不起作用,因为在我看来,id 为“gvCapitalByYear”的元素没有附加到任何地方,它只是动态创建并保存在变量中。是否有可能以某种方式使用内容变量获取动态创建的表,添加一定数量的行并将其重新分配回内容变量?

4

2 回答 2

1

您需要使用该content变量而不是查询 DOM 中的这些元素(例如$('#gvCapitalByYear')),因为内容尚未附加到 DOM。

一旦将表格 HTML 包装为 jQuery 对象,就可以像任何其他 jQuery 对象一样查询和操作它。content该对象是“活动的”,因此您在追加更多内容后无需重新分配变量。

var content = $('<table id="gvCapitalByYear" cellspacing="0" cellpadding="2"><tbody></tbody></table>');
//later, add as many rows as you like
content.find('tbody').append('<tr><td>Some Content Here</td></tr>');

此外,tabletbody元素tr不是自关闭标签,您需要为每个标签设置一个开始标签和一个结束标签,才能使其成为有效的 HTML。

工作演示

于 2013-08-16T12:03:56.047 回答
0

试试这个

$('body').append('<table id="gvCapitalByYear" cellspacing="0"
   cellpadding="2"></table>');

然后

$('#gvCapitalByYear').append('<tr><td>my data</td><td>more data</td></tr>');
于 2013-08-16T12:07:08.340 回答