1

我的标记中有下表:-

<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

4

2 回答 2

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);
    });
}​
于 2012-10-24T12:17:38.337 回答
1

再次添加 tbody。

$('#tablelist').append('<tbody></tbody>');
于 2012-10-24T11:25:44.403 回答