2

私はグリッド コントロールを使用しており、テーブルには tr が 1 つあり、クリックすると開きます。

<script type="text/javascript">
// Activate TableStyling
jQuery(document).ready(function () {
    $('table.management').each(function () {
        $(this).children('tbody').children(':odd').addClass('grey');
    });

});

しかし、問題は、その非表示の TR もカウントすることです。そのため、その非表示の TR をカウントせず、表示されている Tr にクラスを追加する関数が必要です

4

5 に答える 5

5

あなたがすることができます:

$(this).children('tbody').children(':visible:odd').addClass('grey');

また、非表示trに特別なクラスなどがある場合は、次のことができます。

$(this).children('tbody').children(':not(.<your hidden class>):odd')
    .addClass('grey');
于 2013-03-13T14:23:45.397 に答える
2

試す

$(this).children('tbody').children(':visible:odd').addClass('grey');

http://jsfiddle.net/K3vCD/

于 2013-03-13T14:24:30.153 に答える
2

:visible疑似セレクターと:odd.

実際の例: http://jsfiddle.net/SAdEE/

于 2013-03-13T14:23:22.507 に答える
1

すべてではないにしても、ほとんどの回答は、「非表示」の定義がjQueryと同じであると想定しています。「非表示」が高さ: 0px のようなものである可能性がある他のケースがあります: 要素が重なり合っている不明瞭な z-indexing など。これらの非常にまれなケースでは、フィルター メソッドを独自のロジックで使用して、「非表示」と見なされるものを分類できます。

$(this).children('tbody').filter(function(){
   return this.isNotAHiddenTR(); // your custom logic.
   // return $(this).is(':visible'); // the most likely solution
}).children(':odd').addClass('grey');

また、:visibleセレクタを持つ要素を返しますvisibility: hidden

于 2013-03-13T14:31:02.203 に答える
1

:visibleセレクターを追加してみてください。

$(this).children('tbody').children(':visible:odd').addClass('grey');
于 2013-03-13T14:23:39.463 に答える