jQueryを使用して、要素が「display:none」であるか、クリック時にブロックするかどうかを確認します


239

非表示になっている要素を確認して並べ替えたい。属性displayと値を持つすべての要素を見つけることは可能noneですか?

回答:


542

:visibleを表示要素に使用し、:hiddenを使用して非表示要素を見つけることができます。この非表示の要素は、display属性がに設定されていnoneます。

hiddenElements = $(':hidden');
visibleElements = $(':visible');

特定の要素をチェックします。

if($('#yourID:visible').length == 0)
{

}

要素は、ドキュメント内のスペースを消費する場合、可視と見なされます。表示されている要素の幅または高さがゼロより大きい、 リファレンス

is()を次のように使用することもできます:visible

if(!$('#yourID').is(':visible'))
{

}

表示の値を確認したい場合は、css()を使用できます

if($('#yourID').css('display') == 'none')
{

}

ディスプレイを使用している場合は、次の値を使用displayできます。

表示:なし

表示:インライン

表示ブロック

表示:リスト項目

表示:インラインブロック

可能なdisplay値の完全なリストはこちらで確認してください。

JavaScriptで表示プロパティを確認するには

var isVisible = document.getElementById("yourID").style.display == "block";
var isHidden = document.getElementById("yourID").style.display == "none"; 

まあ、私のシナリオでは、各要素にIDがあるため、トリックは私のために機能します:)
Nicholas Francis

2
@NicholasFrancis、私は隠されているすべての要素を見つけるために私の答えを更新しました。
Adil 2013

インラインCSSもチェックしますか?display: block;jqueryからのインラインで書かれたCSS があります。私はあなたの方法でそれをチェックすることができません。助けて。
Gaurav Manral 2014

jQueryが追加され、DOMに追加された後に要素にアクセスしていますか?コードを見せていただけますか?jsfiddle.netで
Adil

JavaScript相当とは何ですか?
TheBlackBenzKid 2017年

56
$("element").filter(function() { return $(this).css("display") == "none" });

7
+1:親要素にがある場合でも機能するため、これは実際に、質問に対する受け入れられた回答よりも有用ですstyle="display: none;"。特定の要素の可視性が必要で、親要素が非表示の場合、これらのセレクターがページ全体の可視性を返すため、とを使用:visibleした回答:hiddenは失敗します(これは質問されませんでした)。
コーディング終了2014年

これは、JS DOM環境で結合テストを実行するときに機能します。
b01

タブ移動のプラグインの場合は、設定されたvisibility: 'hidden';:チェックもチェックし終わったので、CSSで$(this).css('visibility') != 'hidden'
phyatt

30

はい、cssfunctionを使用できます。以下はすべてのdivを検索しますが、必要に応じて要素を変更できます

$('div').each(function(){

    if ( $(this).css('display') == 'none')
    {
       //do something
    }
});

13

この条件を使用します。

if (jQuery(".profile-page-cont").css('display') == 'block'){
    // Condition 
}

11

jQueryには、可視性をチェックする2つのメソッドがあります。

$("#selector").is(":visible")

そして

$("#selector").is(":hidden")

セレクターの可視性に基づいてコマンドを実行することもできます。

$("#selector:visible").hide()

または

$("#selector:hidden").show()

6
注:親の祖先の可視性にも依存するため、質問では、選択した要素の特定の表示属性は返されません:visible。祖先がdisplay: noneすべての子孫である場合、display状態に関係なく表示されません。
コーディング終了2014年

10
$('#selector').is(':visible');

3
注:親の祖先の可視性にも依存するため、質問では、選択した要素の特定の表示属性は返されません:visible。祖先がdisplay: noneすべての子孫である場合、display状態に関係なく表示されません。
コーディング終了2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.