【发布时间】:2013-03-06 05:39:42
【问题描述】:
我有以下 jQuery 代码(x 为 3,i 为 1,storeid 为 4):
function addNewTableRow(x,i,storeid){
$('#kds_resultsTable tbody').append('<tr></tr>'); //tr:nth-child('+(i)+')'
for (var a=1; a<=x; a++) {
if(a==1){
$('#kds_resultsTable tbody tr:nth-child('+(i)+')').append($.parseHTML("<td class='"+i+"'></td>"));
}else{
$('#kds_resultsTable tbody tr:nth-child('+(i)+')').append($.parseHTML("<td class='"+i+" kds_elementstoreid_"+storeid+"></td>"));
}
}
}
但是,如果 x 确实是 3(表明 else 情况应该被打印两次),HTML 输出是这样的(以单个表格行为例):
<tr>
<td class="5 kds_elementsstoreid_4"></td>
</tr>
看起来 .append 覆盖了之前在 for 循环中附加的文本,只剩下循环最后一次迭代中生成的 HTML。我预计会有 3 个 <td></td> 元素,而不仅仅是一个。
.append() 是在这里使用的正确 jQuery 函数,还是应该使用其他不会覆盖我以前的内容的东西?如果不使用.append(),我不确定另一种方法可以在这里实现我想做的事情。
作为参考,我使用的是 jQuery 的最新可用版本(截至 2013 年 15 月 3 日)。
【问题讨论】: