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);

奇妙なことは、サイズとスライスが予想外に機能していて、方法を特定できないことです。

このテーブルには 6 行あります。countRows18 を返します。これはすべてのテーブルで発生します。結果は、行数に 3 を掛けたものになります。なぜでしょうか?

また、結果hideRowsは予想外です。テーブルの最初の 5 行を表示したい。しかし今は (すべてのテーブルで) 最初の 2 行だけが表示されます。5 を 10 に変更すると、4 行が表示されます。

私のエラーですか?しばらくこれをいじっていますが、現時点では完全に迷っており、すべてのヘルプ/ヒント/提案は大歓迎です!

4

1 に答える 1

1

私のコメントによると、スタック オーバーフローはあなたのテディ ベアであり、この質問をするだけで解決したと思います。

コードが selector を使用して期待どおりに動作することを示すことができますがtbody tr、セレクターを変更するというわずかな間違いは、6 行と行ごとに 3 セルのテーブルの質問でtbody td 説明した動作を示します。

于 2012-05-21T13:41:03.010 に答える