当我清空数据表时,我得到了2个

时间:2017-09-29 10:10:44

标签: javascript jquery datatables

我有一个表格,我用jQuery .append()填充,随后我声明它像数据表。由于不是填充表格的ajax调用,我使用.empty()清除tbodythead,问题出现在这里:

tbody已被清除并替换为新数据,但thead是双倍的(dataTables_scrollHead中有一个带有新信息,一个是带有旧信息的dataTables_scrollBody中表的thead)。当我调整页面大小或打开控制台时,dataTables_scrollBody内部的一个消失了。在此之后,表只返回一个thead,但每次重复此操作而不更改大小时,会在dataTables_scrollBody表中添加一个thead。

这是我的代码:

$("#table tbody").empty();
$("#table thead").empty();
dataTableTest = $("#table");

var h="<tr>";
for(var i=0;i<data.info.length;i++)                 
    h+="<th style='cursor:pointer;'>"+hello+"</th>";
dataTableTest.find("thead").append(h+"</tr>");

h="";
for(var i=0;i<data.list.length;i++) {
    h+="<tr>";
    for(var j=0;j<data.list[i].length;j++)
        h+="<td>"+data.list[i][j]+"</td>";
    h+="</tr>"
}
dataTableTest.find("tbody").append(h);

dataTableTest.DataTable({
                        "scrollY": "367px",
                        "scrollX": true,
                        "bSort": false,
                        "orderMulti": false,
                        "searching": false,
                        "paging": false,
                        "bInfo": false,
                        "language": {
                            "emptyTable": NORECORD
                           }
                    });

1 个答案:

答案 0 :(得分:0)

您正在使用append,它会将内容附加到指定的容器中。

dataTableTest.find("thead").append(h+"</tr>");

您可以直接使用.replaceWith()将标记替换为新标记,而不是附加。

$("#table thead").replaceWith(h+"</tr>");