我有一个动态生成的表。当表中的数据排序很好。但是,当它在下次尝试加载数据时遇到其中没有数据的表时,我收到以下错误:
table.tBodies [0]未定义 [打破此错误] totalCells =(tabl ... Bodies [0] .rows [0] .cells.length)|| 0,
我正在做的是我在屏幕的左侧列出了一堆或多个表格。当我点击一个我创建一个html表时,它包含列,然后包含该表中的数据。只有当我单击一个只返回表的列名的表时才会出现此问题(数据库中的表中没有数据)。
在我的.ajax调用中加载表:
$("#tableData").tablesorter();
($("#tableContents").html(result));
$("#tableData").trigger("update");
$("#tableData").tablesorter();
我可能会收到此错误的任何想法?
答案 0 :(得分:9)
你可能没有创建tbody元素。这是tablesorter的要求。它不需要保存任何数据,例如
<table><thead>...</thead><tbody></tbody></table>
答案 1 :(得分:9)
你可能需要从this example:
求助你的桌子$("#tableContents").append(html);
$("#tableData")
.trigger("update")
.trigger("sorton",[ [[2,1],[0,0]] ]);
如果这不起作用,请尝试“appendCache”方法
$("#tableContents").append(html);
$("#tableData")
.trigger("update")
.trigger("appendCache")
.trigger("sorton",[ [[2,1],[0,0]] ]);
我还花了一些时间尝试在TableSorter中找到所有未记录的方法和选项,请在my blog中查看。
答案 2 :(得分:2)
举:
$("#tableData").tablesorter();
在您使用数据加载表格之后。
编辑:
在考虑了这个之后,你确实希望在加载表之后调用tablesorter(),但在尝试对它进行排序之前,请检查以确保行中有行。
类似的东西:
if($("#tableData").find('tbody:first tr').length > 0){
$("#tableData").tablesorter();
}