在我写的这个脚本中有些东西没有看到,我想更新/重绘DIV中的表格。我写了这个:使用jquery更新表格
<div id="e-table">
...
</div>
<script>
var tableHeader = '<table class=\"table table-striped\"><thead><tr><th>Date</th><th>Type</th><th>Information</th></tr></thead><tbody>';
var tableFooter = '</tbody></table>';
var table = $("#e-table");
function updateEvents() {
$.ajax({
url: "/monitor/ajaxEvents",
dataType: "json"
}).done(function(data) {
refreshTable(data);
});
}
function refreshTable(data) {
table.html(tableHeader);
$.each(data, function(i, item) {
table.append("<tr><td>" + item.date + "</td><td>" + item.type + "</td><td>" + "FOO" + "</td></tr>");
});
table.append(tableFooter);
}
updateEvents();
</script>
我保存表部分是恒定的tableHeader和tableFooter中,在一个周期内我追加TD元素,但这是脚本输出一些奇怪的事情:
<div id="e-table">
<table class="table table-striped">
<thead>
<tr>
<th>Date</th>
<th>Type</th>
<th>Information</th>
</tr>
</thead>
<tbody></tbody>
</table>
<tr>
<td>2014-07-03 12:12:00</td>
<td>withdrawal</td>
<td>FOO</td>
</tr>
<tr>
<td>2014-07-03 12:12:00</td>
<td>general</td>
<td>FOO</td>
</tr>
<tr>
<td>2014-07-03 12:11:58</td>
<td>withdrawal</td>
<td>FOO</td>
</tr>
<tr>
<td>2014-07-03 12:11:58</td>
<td>general</td>
<td>FOO</td>
</tr>
<tr>
<td>2014-07-03 11:33:43</td>
<td>withdrawal</td>
<td>FOO</td>
</tr>
<tr>
<td>2014-07-03 11:33:43</td>
<td>general</td>
<td>FOO</td>
</tr>
<tr>
<td>2014-07-03 11:33:42</td>
<td>withdrawal</td>
<td>FOO</td>
</tr>
<tr>
<td>2014-07-03 11:33:42</td>
<td>general</td>
<td>FOO</td>
</tr>
</div>
我没有明白,为什么tableFooter在打印元素之前打印?
+1。 append()方法插入DOM元素,而不是原始代码。 – isherwood
他遇到的问题不是因为他错误地添加了。这是因为他将'tr'元素附加到'div'标签。 –
这个答案显然是错误的。你仍然将'tableHeader'html添加到div中,而不是实际的表格。 OP,请看看我的答案。 –