0

我正在创建一个用于对表进行排序和分页的 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 行。

是我的错误吗?现在搞砸了一段时间,但我现在完全迷失了,非常欢迎每一个帮助/提示/建议!

4

1 回答 1

1

根据我的评论,我相信 Stack Overflow 一直是你的泰迪熊,仅仅提出这个问题的行为就会导致你解决它。

我可以证明您的代码使用选择器按预期运行tbody tr,但是更改选择器以tbody td 展示您在问题中描述的行为,即每行 6 行和 3 个单元格的表。

于 2012-05-21T13:41:03.010 回答