13

.highlightこの単純な jQuery スニペットを使用して、「見つかった」要素 (これらの要素にはクラスがあります) の数を取得しています。

$(".highlight").length

しかし、今私の問題は、いくつかの要素が隠されていることです。style="display: none;"

さて、強調表示され表示された要素の数を取得するにはどうすればよいですか?

何かのようなもの:

$(hasClass 'highlight' AND has style 'display: block'). length ?
4

4 に答える 4

8

1 つの方法は:visible、Adil が述べたように jQuery 疑似セレクターを使用することです。

よくある落とし穴は、クラス.highlightを持つ要素が非表示のコンテナにネストされている場合、その要素が持っていてもそれを取得できないことですdisplay: block

代わりに、次のように css regex を使用できます。 $('.highlight[style*="display: block"]')

よくある落とし穴は、ルールがどのように記述されているかを正確に知る必要があることです。blockそのように前にスペースがない場合:display:block代わりにdisplay: block、要素を取得することもできません。

blockこれを克服する方法は、次のようなスタイルで 用語のみを検索することです。$('.highlight[style*="block"]')

于 2014-11-17T20:28:45.297 に答える