jQueryでclassの設定・変更・削除をする方法【サンプル有】
jQueryで、classの操作についてまとめました。
要素にclassを追加する.addClass()
要素にクラスを追加する場合は、
$('.test').addClass('red-text');
と書きます。
addClassの中に、追加したいクラスを設定してください。
セレクタの指定ではないため、誤って先頭にドット(.)を付けないように注意してください。
//正しい $('.test').addClass('red-text'); //間違い $('.test').addClass('.red-text');
サンプルコード
<style> .red-text{ color: red; } </style> <p class="ex01">.red-textを適用させて、この文字を赤くします。</p> <script> $(function(){ $('.ex01').addClass('red-text'); }); </script>
.red-textを適用させて、この文字を赤くします。
要素のクラスを削除する.removeClass()
要素のクラスを削除する場合は、
$('.test').removeClass('red-text');
と書きます。
サンプルコード
<style> .red-text{ color: red; } </style> <p class="ex02 red-text">.red-textを外し、この文字色をデフォルトに戻します。</p> <script> $(function(){ $('.ex02').removeClass('red-text'); }); </script>
.red-textを外し、この文字色をデフォルトに戻します。
要素が特定のクラスの有無を確認する.hasClass()
要素が特定のクラスを持っているか確認したい場合は、.hasClass()メソッドで確認できます。
if($('.test').hasClass('red-text')){ //.testがred-textを持っている場合の処理 }
主に条件分岐と併せて使用することが多くなると思います。
サンプルコード
<p class="ex03 red-text">.red-textがあるpタグ</p> <p class="ex13">.red-textがないpタグ</p> <script> $(function(){ if( $('.ex03').hasClass('red-text') ){ console.log('red-textクラスを持っています。'); }else{ console.log('red-textクラスを持っていません。'); } if( $('.ex13').hasClass('red-text') ){ console.log('red-textクラスを持っています。'); }else{ console.log('red-textクラスを持っていません。'); } }); </script>
.red-textがあるpタグ
.red-textがないpタグ
要素に指定のクラスを持っていれば削除、持っていなければ付与する.toggleClass()
要素に対して、特定のクラスの切り替えを行いたい場合は、toggleClass()を使用します。
$('.test').toggleClass('red-text');
指定のクラスを持っていれば削除、持っていなければ付与を行います。
サンプルコード
<style> .red-text{ color: red; } </style> <p class="ex04">切り替え用テキスト</p> <input type="button" class="ex04_btn" value="red-textクラスを切り替える"> <script> $(function(){ //ボタンを押すとtoogleClassを実行する $('.ex04_btn').click(function(){ $('.ex04').toggleClass('red-text'); }); }); </script>
切り替え用テキスト
【応用編】特定の要素に対する表示・非表示ボタンを作成する
toggleClass()とhasClass()を使用して、要素の表示・非表示を切り替えるボタンを作成してみました。
jQueryにおける、class操作の活用例の1つとして、一度触ってみてください。
サンプルコード
<style> /* ボタンデザイン(表示時) */ .ex05-btn{ background-color: #FFF; color: #000; text-align: center; padding: 5px 10px; width: 100%; font-size: 18px; border: 1px solid #000; cursor: pointer; } .ex05-btn:before{ content: '▼表示する'; } .ex05-btn.show{ background-color: #000; color: #FFF; } .ex05-btn.show:before{ content: '▲元に戻す'; } .ex05-div-area{ display: none; box-sizing: border-box; padding: 10px; background-color: #CCC; border: 1px solid #000; } </style> <button type="button" class="ex05-btn"></button> <div class="ex05-div-area"> ボタンで切り替える、表示・非表示エリアです。 </div> <script> $(function(){ $('.ex05-btn').click(function(){ //.showクラスを切り替える $('.ex05-btn').toggleClass('show'); //showクラスを持っていれば、ex05-div-areaを表示、持っていなければ非表示 if($('.ex05-btn').hasClass('show')){ $('.ex05-div-area').show(); }else{ $('.ex05-div-area').hide(); } }); }); </script>
ボタンで切り替える、表示・非表示エリアです。
ディスカッション
コメント一覧
まだ、コメントがありません