次の単純なjQueryスニペットを使用して、「見つかった」要素の数(これらの要素には.highlight
クラスがあります)を取得しています。
$(".highlight").length
しかし今私の問題は、いくつかの要素がstyle="display: none;"
によって非表示になっていることです
では、要素の数を強調表示して表示するにはどうすればよいですか?
何かのようなもの:
$(hasClass 'highlight' AND has style 'display: block'). length ?
:visibleを使用して、表示されている要素を取得できます。
$(".highlight:visible").length
1つの方法は、Adilが述べたように_:visible
_ jQuery擬似セレクターを使用することです。
一般的な落とし穴は、クラス_.highlight
_の要素が非表示のコンテナにネストされている場合、その要素に_display: block
_が含まれていても取得できないことです。
代わりに、次のようにcss regexを使用できます:$('.highlight[style*="display: block"]')
よくある落とし穴は、ルールの記述方法を正確に知る必要があることです。 block
の前にスペースがない場合:_display:block
_の代わりに_display: block
_のように要素を取得することもできません。
これを克服する方法は、次のようなスタイルでblock
のみを検索することです:$('.highlight[style*="block"]')
Uは css を使用して要素にcss display="none"
またはdisplay="block"
$(".highlight").each(function(){
if($(this).css("display")=="block"){
//Your code here
}
});