jQueryで要素が非表示になっているかどうかを確認するのってどうすればいい??

このエントリーをはてなブックマークに追加

質問:

.hide().show().toggle()関数を使えば要素の可視性を切り替えることができるけど、要素が表示されているか隠れているかはどうやってテストすればいいの?

By Philip Morton | 質問日時: Oct 7 ‘08 at 13:03



回答1:

1つの要素についての質問だから、このコードがいいかな

$(element).is(":visible");

[下の人の提案]と同じだけど、1つの要素についてのもの;そしてこれはjQueryのFAQで推奨されてるアルゴリズムとおんなじ

By Tsvetomir Tsonev | 回答日時: Oct 7 ‘08 at 13:30



回答2:

hiddenセレクタが使えるよ:

//非表示になってるのすべての要素とマッチする
$('element:hidden')

それか、visibleセレクタ:

// Matches all elements that are visible
//表示されているすべての要素とマッチ。
$('element:visible')

By twernt | 回答日時: Oct 7 ‘08 at 13:16



回答3:

if ( $(element).css('display') == 'none' ){
// element is hidden
  // 要素は隠されてる
}

関数はvisibility属性では機能しないけど。

By Mote | 回答日時: Oct 7 ‘08 at 13:09



回答4:

どの答えも、僕が質問だと思ってた(そして僕が探していたもの)のと違う答えしてる、つまり_「visibility: hiddenを持つアイテムをどうやって扱うの?っていう質問。
:visible:hiddenもここでは使えない、というのはどちらもドキュメントごとの表示を探してるから。僕がわかる限り、CSSの可視性を処理するセレクタってないよね。僕の解決方法を書いてみる(標準のjQueryセレクタでは、もっといい書き方があるかもだけど)。

$(".item").each(function() {
if ($(this).css("visibility") == "hidden") {
//非可視状態を処理する
} else {
//可視状態を処理する
}
});

By aaronLile | 回答日時: Mar 24 ‘11 at 18:44



回答5:

どうやってトグルする要素の状態調べるの?より


要素が折りたたまれているかどうかは、:visible:hiddenセレクタ:

var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');

可視状態に基づいて要素に何かするのであれば、セレクタ式に :visible:hiddenを含める。例えば:

$('#myDiv:visible').animate({left: '+=200px'}, 'slow');

By user574889 | 回答日時: Jan 13 ‘11 at 21:13



Source: How do I check if an element is hidden in jQuery?

共有 コメント