【问题标题】:jquery plugin size and slice not workingjquery插件大小和切片不起作用
【发布时间】: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 行?

标签: jquery plugins size slice


【解决方案1】:

根据我的评论,我相信 Stack Overflow 一直是您的 teddy bear,而仅仅提出这个问题的行为就会导致您修复它。

我可以demonstrate 使用选择器 tbody tr 表明您的代码的行为与预期一样,但是在问题中将选择器更改为 tbody td exhibits the behaviour you describe 的小错误是针对 6 行和每行 3 个单元格的表格.

【讨论】:

  • 谢谢!确实 Stack Overflow 是我在这里的泰迪熊(非常好的概念,明天一定会带一只泰迪熊去上班!)。我在jsfiddle中粘贴了一个表,发现错误在生成的表中。 标签未正确关闭。通过修复我的问题得到了解决。由于我是这里唯一的开发人员,因此很容易忽略这样的简单事情,并且没有开发人员(或泰迪熊)让我在自己创建的盒子之外思考一秒钟。再次感谢!
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多