2011-11-17 4 views
8

テーブル内に隠れていない行の数を数えたいと思います。 trアトリビュートのスタイルをチェックすると、行が非表示になっているかどうかを知ることができます。<tr style="display: none; ">。 jqueryを使ってこれをどのように計算しますか?テーブル内に隠れていない行の数を取得

答えて

13

:visibleセレクタを使用できます。ここ

$('tr:visible').length; 

はこれを実証フィドルです:

http://jsfiddle.net/cX6jb/

+0

doesnの操作を行いますIE8の作業 – Yaje

+0

あなたはどのバージョンを使用していますか?非常に古いjqueryにバグがありましたが、1.4.2で修正されました。 – Patricia

5

:visible selectorにのみ表示項目を選択します。

var count = $('#your-table tr:visible').length; 

jsFiddle Demo

すでにあなたの行を保持する変数を持っている場合は、filterメソッドを使用することができます。

var $rows = $('#your-table tr'), 
    visibleCount = $rows.filter(':visible').length; 
3
$('tr').filter(':visible').length 

多田!注:VisibleはjQueryセレクターなので、有効なCSSセレクターを使用して要素を取得してからそれらをフィルターに掛けるほうがはるかに高速です。

:visible

+0

はtrの中のすべてのものが見える長さになると信じています。したがって、各行に2つのtdがある場合は、4を返します。間違いなく、必要なものはありません。 – Patricia

+0

@Patricia優秀なポイント、私は 'filter()'を意味しました、ありがとう – Andrew

1

あり、より簡単な方法は、おそらくですが、あなたはこの

var a = $('tr').length; 
var b = $('tr[style="display:none;"]').length; 
alert(a - b); 

例行うことができます:あなたは、特定のテーブルを見つける場合http://jsfiddle.net/YV3cy/

1

をこの

$("#tableid tr:visible").length 
関連する問題