在我寫的這個腳本中有些東西沒有看到,我想更新/重繪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,請看看我的答案。 –