我有jQuery代码,可以像这样添加对表的最后<tr>
的响应:
var table = '<td>' + result.table.product + '</td><td>' + result.table.code + '</td><td>' + result.table.value + '</td><td>' + result.table.time + '</td>';
$('#poo tr:last').after(table);
这是我的表:
<?php
$sql="SELECT * FROM wp_scloyalty WHERE userid = '$user_id' ORDER BY date ASC";
$result=mysql_query($sql);
?>
<table id="poo" style="margin:10px 0px 0px 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong>Product</strong></td>
<td><strong>Code</strong></td>
<td><strong>Value</strong></td>
<td><strong>Date Redeemed</strong></td>
</tr>
<?php while($rows=mysql_fetch_array($result)){ ?>
<tr class="currentpoints">
<td><? echo $rows['product']; ?></td>
<td><? echo $rows['code']; ?></td>
<td><? echo $rows['value']; ?></td>
<td><? echo $rows['date']; ?></td>
</tr>
<? } ?>
<tr class="currentpoints">
<td id="producttd"></td>
<td id="codetd"></td>
<td id="valuetd"></td>
<td id="datetd"></td>
</tr>
</table>
我的问题是,当我添加多个条目时,它会尝试将它们全部放入最后一个tr中。有没有办法在填充完最后一个tr之后添加tr或者其他东西?
答案 0 :(得分:2)
有一种方法可以插入一个完整的新行,但您必须记住隐式插入的<tbody
元素,因此您必须将新行作为此元素的子元素插入。
var table = '<tr><td>' + result.table.product + '</td><td>' + result.table.code + '</td><td>' + result.table.value + '</td><td>' + result.table.time + '</td></tr>';
$('#poo > tbody').append( table );
答案 1 :(得分:2)
在将行附加到表时,是否应该添加<tr>
标记?
var table = '<tr><td>' + result.table.product + '</td><td>' + result.table.code + '</td><td>' + result.table.value + '</td><td>' + result.table.time + '</td></tr>';
$('#poo tr:last').after(table);
答案 2 :(得分:0)
如果最后一个人已经填充了
,你应该跟踪//the last tr
var $lastTr = $('#poo tr:last');
var table = '<td>' + result.table.product + '</td><td>' + result.table.code + '</td><td>' + result.table.value + '</td><td>' + result.table.time + '</td>';
//check if it has the class populated
if($lastTr.hasClass('populated')){
//if it has it create a new row
var tr = $('<tr/>');
tr.append(table);
$lastTr.after(tr);
}else{
//use the last row
$lastTr.html(table);
$lastTr.addClass('populated');
}
答案 3 :(得分:0)
这应该有效:
function test(product, code, value, time)
{
var table = '<tr><td>' + product + '</td><td>' + code + '</td><td>' + value + '</td><td>'+ time + '</td></tr>';
$('#poo > tbody').append(table);
}
test('1','1','1','1');
test('2','2','2','2');
JSFiddle输出:http://jsfiddle.net/pzewX/