【发布时间】:2012-05-28 00:02:35
【问题描述】:
我正在创建一个用于对表格进行排序和分页的 jquery 插件(我知道它们有很多,我尝试了很多,但到目前为止没有一个适合我的需求。)
无论如何,我的页面上有很多表格,并通过以下方式调用我的插件:
$('.data-table').tableSorterTwo();
插件代码如下:
(function($)
{
$.fn.tableSorterTwo = function()
{
return this.each(function()
{
countRows($(this));
hideRows($(this));
});
};
function countRows(element)
{
console.log($(element).find('tbody tr').size());
}
function hideRows(element)
{
$(element).find('tbody tr').hide().slice(0, 5).show();
}
})(jQuery);
奇怪的是 size 和 slice 的工作出乎意料,我无法确定。
我有这个有 6 行的表; countRows 返回 18。这适用于所有表。结果是行数乘以 3。这是为什么呢?
hideRows 的结果出乎意料。我想显示表格的前 5 行;但现在(对于每个表)只显示前 2 行。将 5 更改为 10 会导致显示 4 行。
是我的错误吗?现在搞砸了一段时间,但我现在完全迷失了,非常欢迎每一个帮助/提示/建议!
【问题讨论】:
-
在这里工作:jsfiddle.net/Tra9N 正确地将
6记录到控制台。你确定你的选择器没有tbody td?一个有 6 行和 3 个单元格的表格将读取18并且只显示hideRows中的前 2 行?