无法使用Jquery删除表的tbody

时间:2012-10-24 11:21:32

标签: javascript jquery asp.net-mvc razor

我的标记中有以下表格: -

<table id="tablelist" border="1">

       <thead>
        <tr>
    </tr>
    </thead>
       <tbody></tbody>
       </table>

我正在使用以下Java脚本构建上表,当用户单击链接时将触发该脚本: -

function getprocesslist(result) {
        $('#tablelist tbody').remove();

    var str = 'Total Number Of Processes:- ' + result.total.toString();
        $('#total').text(str.toString());

        var str1 = '<tr><th>' + 'Process Name' + '</th><th>' + 'Process Requestor ID' + '</th><th>' + 'Process State' + ' </th><th>' + 'Process Start Date' + ' </th><th>' + 'Process Due Date' + ' </th></tr>';
        $('#tablelist tr:last').after(str1);
    $.each(result.data, function (key, val) {
        var str2 = '<tr><td>' + val.name + '</td><td>' + val.requesterId + '</td><td>' + val.state + '</td><td>' + val.startedTime + '</td><td>' + val.due + '</td></tr>';

        $('#tablelist tr:last').after(str2);

    });
   }

但问题是,当用户点击链接上的多个时间时,新数据将显示在旧表下,而不是删除旧数据。我认为我的代码的问题是,在第一个碰撞中,<tbody></tbody>被移除,我不能使用Jquery再次引用它?关于如何解决这个问题的任何想法?

BR

2 个答案:

答案 0 :(得分:2)

您正在删除tbody,然后将所有内容添加到表头。相反,清空头部和身体并将内容附加到正确的位置:

function getprocesslist(result) {
    $('#tablelist tbody, #tablelist thead').empty();

    var str = 'Total Number Of Processes:- ' + result.total.toString();
    $('#total').text(str.toString());

    var str1 = '<tr><th>' + 'Process Name' + '</th><th>' + 'Process Requestor ID' + '</th><th>' + 'Process State' + ' </th><th>' + 'Process Start Date' + ' </th><th>' + 'Process Due Date' + ' </th></tr>';
    $('#tablelist thead').append(str1);

    $.each(result.data, function (key, val) {
        var str2 = '<tr><td>' + val.name + '</td><td>' + val.requesterId + '</td><td>' + val.state + '</td><td>' + val.startedTime + '</td><td>' + val.due + '</td></tr>';
        $('#tablelist tbody').append(str2);
    });
}​

答案 1 :(得分:1)

再次添加tbody。

$('#tablelist').append('<tbody></tbody>');