我确实拥有存储在数据库中的html表的内容,我使用jQuery从中提取数据,并通过从这些表创建JSON对象将其放在另一个表中。
我获取存储的表并将其附加到DOM,如下所示:
$('#divfortable).append(storedtable);
下一步是创建我的对象:
var tableObject = $('# divfortable tbody tr').map(function(i) {
var row = {};
$(this).find('td').each(function(i) {
var rowName = columns[i];
row[rowName] = $(this).text().trim();
});
return row;
}).get();
我有一个包含相关列名的现有数组。
下一步是将这些详细信息上传到服务器:
data = { id: id, tableObject: tableObject };
$.ajax({
dataType: 'json',
url:'my_url',
data: $.param(data),
error: function(jqXHR, textStatus, errorThrown) { },
success: function(data) { }
});
它工作正常,我对结果非常满意,但我的问题是在另一张桌子上重复这个过程。我想得到一个新表并以类似的方式提取其内容,但我无法摆脱以前的结果。结果包含新加载的表加上上一个表的表,如果我再次重复它,它包含所有3个表的结果!
对我来说很明显,我必须从之前的提取中清空所有对象和DOM元素,但我尝试了不同的方法,但无济于事。我从搜索互联网和这个论坛收集到你可以使用delete或empty来销毁tableObject,这样你就可以创建一个全新的,但它不能完成这项工作。
我尝试了以下内容:
delete tableObject;
和
$('#divfortable).remove(storedtable);
在成功函数中,一起和单独
我也用过
$('#divfortable).remove(storedtable);
创建数据对象后
data = { id: id, tableObject: tableObject };
但在这种情况下,脚本不会进入ajax调用,但是通过显示$('#divfortable)
它会显示两个表!
如何摆脱以前的结果?
答案 0 :(得分:0)
您应该能够在第二次操作之前简单地清除当前#divfortable
:
$('#divfortable').empty();