:visible【表示要素】セレクタ
:hidden【非表示要素】セレクタ
メモ
- 表示要素・非表示要素 を選択
- :visible【表示要素】セレクタと:hidden【非表示要素】セレクタは背反
- パフォーマンス
- ネイティブ DOM querySelectorAll() 未使用の為、低速
純粋なCSSセレクタを使用後、.filter(":visible")
・.filter(":hidden")
を使用した方が高速 ( 例 参照) - 再レンダリングの可能性がある為、クラスを利用する方がパフォーマンス的に優位
- ネイティブ DOM querySelectorAll() 未使用の為、低速
- 表示要素 選択対象 (非表示要素以外)
- 表示されている要素
- CSS の visibility【可視状態】が hidden【非表示】の要素 (要素領域が存在) 1.3.2
- CSS の opacity【透明度】が 0【透明】の要素 (要素領域が存在)
- HTML5:<br>【改行】 ・内容が空 (要素領域が無い) の HTML5:<span>【インライン要素】 等の インライン要素 3.0
- その他表示要素 (下記も対象)
HTML5:<body>【ドキュメントボディ】
HTML5:<html>【ルート要素】
- 非表示要素 選択対象 (表示要素以外)
- CSS の display 値が none の要素
- フォーム要素で type="hidden"【隠しフィールド】の要素
- 幅・高さがともに 0 の要素 (hidden 属性指定の要素も対象)
- 先祖要素が非表示の為、非表示となる要素
- その他非表示要素 (下記も対象)
HTML5:<head>【メタデータコンテナ】
HTML5:<link>【メタデータリンク】
HTML5:<meta>【メタデータ】
HTML5:<script>【スクリプト】
HTML5:<style>【スタイル情報】
HTML5:<title>【ドキュメントタイトル】
構文
【表示要素】セレクタ
jQuery( ":visible" ) 1.0
【非表示要素】セレクタ
jQuery( ":hidden" ) 1.0
関連
- jQuery リファレンス メモ
- jQuery (英語)
例
<div id="id1">
<p>【表示対象】</p>
<p>[<input id="input-normal">]:<input id="input-normal"> (通常表示要素)</p>
<p>[<input id="input-visibility" style="visibility:hidden;">]:<input id="input-visibility" style="visibility:hidden;"> (visibility:hidden)</p>
<p>[<input id="input-opacity" style="opacity:0;">]:<input id="input-opacity" style="opacity:0;"> (opacity:0)</p>
[<br id="br-normal">]:<br id="br-normal">
<p>[<span id="span_normal">(span)</span>]:<span id="span_normal">(span)</span>
[<span id="span_empty"></span>]:<span id="span_empty"></span></p>
<hr id="hr">
<p>【非表示対象】</p>
<p>[<input id="input-display-none" style="display:none;">]:<input id="input-display-none" style="display:none;"> (display:none)</p>
<p>[<input id="input-type-hidden" type="hidden">]:<input id="input-type-hidden" type="hidden"> (type属性:hidden)</p>
[<fieldset id="fieldset-hidden" hidden>
[<input id="input-inside">]:<input id="input-inside">
</fieldset>]:<fieldset id="fieldset-hidden" hidden> (hidden属性 内部に表示要素)
[<script></script>]:<script></script>
[<style>
</style>]:<style></style>
</div>
<p id="output11" style="border:1px black solid;"></p>
<p id="output12" style="border:1px black solid;"></p>
<script>
var msg;
var elms;
var count;
// $( ":visible" )
elms = $( "#id1 :visible" );
count = 0;
msg = "";
for (var i = 0; i < elms.length; i++) {
if ((elms[i].tagName !== "P") || (elms[i].id !== "")) {
msg += "<br>[" + elms[i].tagName + "] " + elms[i].id;
count++;
}
}
msg = '$( ":visible" ) idがない<p>は排除<br>項目数 = ' + count + msg;
$( "#output11" ).append(msg);
elms.css( "border", "2px red dashed");
$( "#id1 p:not([id])" ).css( "border", "none");
// $( ":hidden" )
elms = $( "#id1 :hidden" );
elms.css( "border", "2px blue dashed");
msg = '$( ":hidden" ) <br>項目数 = ' + elms.length;
for (var i = 0; i < elms.length; i++) {
msg += "<br>[" + elms[i].tagName + "] " + elms[i].id;
}
$( "#output12" ).append(msg);
</script>
【表示対象】
[]:<input id="input-normal"> (通常表示要素)
[]:<input id="input-visibility" style="visibility:hidden;"> (visibility:hidden)
[]:<input id="input-opacity" style="opacity:0;"> (opacity:0)
[]:<br id="br-normal">
[(span)]:<span id="span_normal">(span)</span> []:<span id="span_empty"></span>
【非表示対象】
[]:<input id="input-display-none" style="display:none;"> (display:none)
[]:<input id="input-type-hidden" type="hidden"> (type属性:hidden)
[]:<fieldset id="fieldset-hidden" hidden> (hidden属性 内部に表示要素) []:<script></script> []:<style></style>