我正在使用jquery ajax来调用servlet。它在页面加载期间被调用,并使用ajax响应(来自servlet)填充div。
我想在单击按钮时再次使用此功能并重新加载div。我在这里遇到问题。不是重新加载div,而是将所有值附加到表中的现有值。
如何通过替换之前的内容重新加载此div?
我的代码(HTML):
<div>
<table id="table1">
<thead>
<tr>
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
</tr>
</thead>
<tbody>
<!-- Adds the rows dynamically from Jquery AJAX response -->
</tbody>
</table>
</div>
JQuery的:
function loadMyTable() {
$.get('CallServlet', {}, function (responseText) {
var response = $.parseJSON(responseText);
$.each(response, function (key, value) {
var row = $("<tr/>")
$('#table1').append(row);
row.append($("<td>" + value.val1 + "</td>"));
row.append($("<td>" + value.val2 + "</td>"));
row.append($("<td>" + value.val3 + "</td>"));
});
$('#table1').dataTable();
});
}
答案 0 :(得分:0)
在添加行之前,您可能需要清空表。使用.empty()。还将新行添加到tbody,而不是表。
function loadMyTable(){
$.get('CallServlet', {
}, function (responseText) {
var response = $.parseJSON(responseText);
$('#table1 tbody').empty();
$.each(response, function (key, value) {
var row = $("<tr/>")
$('#table1 tbody').append(row);
row.append($("<td>" + value.val1 + "</td>"));
row.append($("<td>" + value.val2 + "</td>"));
row.append($("<td>" + value.val3 + "</td>"));
});
$('#table1').dataTable();
});
}
答案 1 :(得分:0)
在向其添加新内容之前,您需要清除table1内容。
$("#table1").epmty();
或
$("#table1 tr").remove();
或
$("#table1").html('');
答案 2 :(得分:0)
1)将Id提供给你的Tbody
<tbody id='table1tbody'>
</tbody>
2)改变追加
function loadMyTable() {
$.get('CallServlet', {}, function (responseText) {
var response = $.parseJSON(responseText);
$("#table1tbody").html("");
$.each(response, function (key, value) {
var row="<tr>";
row+="<td>" + value.val1 + "</td>";
row+="<td>" + value.val2 + "</td>";
row+="<td>" + value.val3 + "</td>";
row+="</tr>";
$("#table1tbody").append(row);
});
$('#table1').dataTable();
});
}
答案 3 :(得分:0)
我用过
$('#table1).datatable().fnDestroy();
这解决了重新加载表时遇到的问题。更新了以下代码
function loadMyTable() {
$.get('CallServlet', {}, function (responseText) {
$('#table1).datatable().fnDestroy();
var response = $.parseJSON(responseText);
$.each(response, function (key, value) {
var row = $("<tr/>")
$('#table1').append(row);
row.append($("<td>" + value.val1 + "</td>"));
row.append($("<td>" + value.val2 + "</td>"));
row.append($("<td>" + value.val3 + "</td>"));
});
$('#table1').dataTable();
});
}
谢谢大家!