2

20 個のテーブル アイテムがある場合にリンクを表示するように addClass を試みています。

ページに複数のテーブルがあり、それぞれが div.box の中にあります

私がやりたいのは、リンクを表示するために 20 個の tr 行 addClass がある場合です。これは個々のテーブルごとに行う必要があります。これを設定するにはどうすればよいですか?

これまでのところ、私は持っています:

    $(document).ready(function(){
    $(".box tr.table-row").length;


    $('a.single-product-link').addClass('visible');
});

しかし、「tr.table-row addClassが20個ある場合」セクションの方法がわかりません。任意の提案をいただければ幸いです。

4

1 に答える 1

0

.box要素は個別に処理する必要があるため、すべての要素に対して同じ関数を実行しています。関数では、div 内のテーブル行をカウントし、20 を超える場合は、div 内のリンクにクラスを追加します。

$('.box').each(function () {
    var $this=$(this);
    if ($this.find('tr.table-row').length > 20) {
        $this.find('a.single-product-link').addClass('visible');
    }
});

jsFiddle デモ


別の可能なバリエーション ( の関数パラメーターを使用し、関数.addClass()内で最も近いものを見つけて.boxそのテーブルの行を数えます):

$('a.single-product-link').addClass(function () {
    if ($(this).closest('.box').find('tr.table-row').length > 20) {
        return 'visible';
    }
});

jsFiddle デモ

于 2011-06-27T17:49:55.990 に答える