我想用jQuery插件TableSorter对表格进行排序。所以我得到了这张表:
<table id="stats" class="zebra-striped">
<thead>
<tr>
<th>Date</th>
<th>Annonce</th>
<th>Support</th>
<th>Nb Assoc.</th>
<th>Nb Transfo.</th>
<th>Cout</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
因为你可以看到我的表是空的,只有标题。所以我使用空单元格初始化tableorter:
$("table#stats").tablesorter({ sortList: [[0,0]]});
并立刻得到了这个错误:
jquery.tablesorter.min.js:4 Uncaught TypeError: Cannot read property '0' of undefined
仅供参考,我的js已加载:
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>
<script src="js/bootstrap-dropdown.js"></script>
<script src="js/bootstrap-scrollspy.js"></script>
<script src="js/jquery.tablesorter.min.js"></script>
任何想法为什么我得到这个以及如何让插件再次运行?
THX
答案 0 :(得分:14)
您需要在表中包含数据,然后才能在其上调用sortList方法。这是因为你在这个方法中应用了一个索引,如果没有数据,它将找不到任何记录,并且会抛出“无法读取属性'0'未定义”错误。
答案 1 :(得分:12)
当有一个空表时,使用tablesorter是不好的,所以你可以使用这个条件:
if ($("table#stats tbody tr").length > 0)
$(this).tablesorter({ sortList: [[0,0]]});
答案 2 :(得分:8)
您不需要在表格中包含数据。以这种方式初始化你的表:
$("table#stats").tablesorter();
然后,在表中插入数据之后,必须告诉插件该表已更新并对其进行排序:
$("table#stats").trigger("update");
var sorting = [[0,0]];
$("table#stats").trigger("sorton",[sorting]);
答案 3 :(得分:3)
我无法解决任何问题,所以我在tablesorter的初始化时设置了超时...
setTimeout(function() {$('table').tablesorter();}, 10000);
答案 4 :(得分:2)
我注意到这发生在http://tablesorter.com/发现的最新版本(我认为是2.0.5b),但在早期版本中没有发生(我有2.0.3的副本,并且它起作用了)。但是,https://github.com/Mottie/tablesorter处有一个分叉版本,维护得更好,并且没有此错误。
答案 5 :(得分:2)
我收到错误&#34;无法读取属性&#39;格式&#39;未定义&#34;。在我的情况下,错误发生是由于“体内”的数量不同而引起的。比在&#39; thead&#39;