jQueryで要素の表示・非表示を切り替える方法【サンプル有】
jQueryの要素の操作において、要素の表示・非表示は割とよく使います。
今回はjQueryの表示・非表示を操るshow,hide,toggleメソッドについてまとめました。
show,hide,toggleの使い方
各メソッドは、それぞれこのような役割を持っています。
show | 要素を表示する |
---|---|
hide | 要素を非表示する |
toggle | 要素を非表示なら表示に、表示中なら非表示に切り替える |
各メソッドは、$(対象の要素).行いたい処理()で記述します。
//要素を表示する $('.test').show(); //要素を非表示にする $('.test').hide(); //要素の状態を切り替える 表示⇔非表示 $('.test').toggle();
ボタンで表示・非表示を操作してみよう
では実際に、各種メソッドを触れて確認してみてください。
それぞれのメソッドを実行できる下記のサンプルコードと実行結果を用意しました。
直接クリックしてみると、メソッドの操作が分かりやすいと思います。
<img class="sample1" width="50" height="50" src="https://kinocolog.com/wp-content/uploads/2019/07/apple.png"> <input type="button" class="btn_ex11" value="show/要素を表示"> <input type="button" class="btn_ex12" value="hide/要素を非表示"> <input type="button" class="btn_ex13" value="toggle/要素を切り替え"> <script> $(function(){ $('.btn_ex11').click(function(){ $('.sample1').show(); }); $('.btn_ex12').click(function(){ $('.sample1').hide(); }); $('.btn_ex13').click(function(){ $('.sample1').toggle(); }); }); </script>
また、メソッドの引数(カッコ内)に数値を入れておくことで、指定した数値(1000=1秒)の時間をかけて変化します。
//1秒かけて非表示になる $('.sample1').hide(1000);
非表示の仕様を知っておこう
非表示にするhide()は、指定した要素に「display:none」を付与しています。
つまり、cssの要素を非表示にするdisplay:noneプロパティを付与して、非表示にしているわけですね。
<img style="display: none;" class="sample1" width="50" height="50" src="https://kinocolog.com/wp-content/uploads/2019/07/apple.png">
show()は、そのdisplay:noneを置き換え、本来設定されていたdisplayプロパティの値を再設定します。
表示か非表示かを判定する方法
では次に、指定した要素が表示か非表示かを判定する記述を見てみます。
先ほど、非表示の要素はdisplay:noneが付与された要素、と説明しました。
つまり、調べたい要素のcssの「display」プロパティが「none」であれば非表示、それ以外であれば表示扱いの要素であることが分かりますね。
//.test要素は表示か非表示か判定したい場合の処理 if($('.test').css('display') !== 'none'){ //表示時の処理 }else{ //非表示時の処理 }
上記以外の記述方法では、フィルターを使った判定も行えます。
非表示かどうかの判定を行いたい場合は.is(‘:hidden’)、表示かどうかの判定を行いたい場合は.is(‘:visible’)が使用できます。
if($('.test').is(':hidden')){ //非表示時の処理 } if($('.test').is(':visible')){ //表示時の処理 }
先ほど紹介したサンプルに、表示/非表示の判定を出すアラートを付けた実行例を用意しましたので、実際に触ってご確認ください。
<img class="sample2" width="50" height="50" src="https://kinocolog.com/wp-content/uploads/2019/07/apple.png"> <input type="button" class="btn_ex21" value="show/要素を表示"> <input type="button" class="btn_ex22" value="hide/要素を非表示"> <input type="button" class="btn_ex23" value="toggle/要素を切り替え"> <input type="button" class="btn_ex24" value="表示/非表示の判定"> <script> $(function(){ $('.btn_ex21').click(function(){ $('.sample2').show(); }); $('.btn_ex22').click(function(){ $('.sample2').hide(); }); $('.btn_ex23').click(function(){ $('.sample2').toggle(); }); $('.btn_ex24').click(function(){ if($('.sample2').is(':visible')){ alert('現在は「表示」です。'); }else{ alert('現在は「非表示」です。'); } }); }); </script>
jQueryで要素を操作する際は割とよく使うメソッドなので、記述と仕様を覚えておきましょう。
以上、jQueryで要素の表示・非表示を切り替える方法、でした。
ディスカッション
コメント一覧
まだ、コメントがありません