我有一个表格,我用jQuery .append()
填充,随后我声明它像数据表。由于不是填充表格的ajax调用,我使用.empty()
清除tbody
和thead
,问题出现在这里:
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
}
});
答案 0 :(得分:0)
您正在使用append,它会将内容附加到指定的容器中。
dataTableTest.find("thead").append(h+"</tr>");
您可以直接使用.replaceWith()将标记替换为新标记,而不是附加。
$("#table thead").replaceWith(h+"</tr>");