使用jquery ajax响应重新加载选项卡
Reload the tab using jquery ajax response
我使用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();
});
}
1) Give Id to your body
<tbody id='table1tbody'>
</tbody>
2) change append
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();
});
}
您需要在添加新内容之前清除table1内容。
$("#table1").epmty();
或
$("#table1 tr").remove();
或
$("#table1").html('');
在添加新行之前可能需要清空表。使用空虚()。还要将新行追加到主体,而不是表。
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();
});
}
我用
$('#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();
});
}
谢谢大家!
相关文章:
- 过滤”;溢价;页面加载选项使用混合
- Jquery-从不同链接加载选项卡
- 如何选择页面加载选项
- Rally App SDK 2.0:rallymultiobjectpicker无法加载选项文本
- 如何在加载选项卡内容时显示加载图像
- 单击图像时从数据库加载选项id
- 如何在页面加载时自动加载选项卡内容(外部链接)
- 根据上一个选项卡的选择器重新加载选项卡
- 如何在 ui-sref 标记中放置重新加载选项
- j查询更改下拉列表调用 Web 服务以加载选项
- 在 HTML 模板的变量中使用 jQuery 查找选择以加载选项
- 使用 Ajax 调用加载选项卡内容
- 如何在重新加载选项(浏览器)时限制页面加载
- jquery ui ajax选项卡-重新加载选项卡,或更改选项卡位置
- 页面加载准备就绪时加载选项卡中的内容
- 单击“加载选项卡内容”
- 从服务器中选择加载选项
- 更改从存储加载选项的下拉dojo的字体大小
- 异步淘汰observableArray选择加载选项
- Chrome扩展:如何使用键盘事件从任何地方重新加载选项卡