0

我确实将 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)它来显示两个表!

我怎样才能摆脱以前的结果?

4

1 回答 1

0

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

$('#divfortable').empty();
于 2013-02-11T11:58:34.723 回答