删除无法删除JSON对象

时间:2013-02-11 11:54:41

标签: javascript jquery dom

我确实拥有存储在数据库中的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)它会显示两个表!

如何摆脱以前的结果?

1 个答案:

答案 0 :(得分:0)

您应该能够在第二次操作之前简单地清除当前#divfortable

$('#divfortable').empty();