jQuery でスタイルを動的に変更する

Java Script

jQurery でスタイルを動的に変更する方法。なぜか間違えがちなのでメモ。

基本的な使い方

jQuery が必要なので、入れていなければコードの前に置いてください。

一般的な jQuery の記法を使います。要素はクラスなら $(‘.クラス名)、IDなら $(‘#ID’) で指定して、cssとClassを操作するメソッドを使います。

WordPress で jQuery を使う場合は、おまじないとして jQuery(function($){}); をつけて、 “jQuery(function($){jQueryのコード})”;の形にしてください。

スタイルの記述は CSS の書き方でOK。

 

スタイルを付与する

css メソッドでスタイル属性を変更できます。既存のスタイルは上書きされます。

id ではなく class にすれば、複数の要素に適用できます。

スタイルをひとつだけ追加

$('要素').css('プロパティ', '値');
スタイルを2つ以上追加する
$('要素').css({'プロパティ': '値', 'プロパティ': '値'});
2つ以上のプロパティを追加する時は、{‘プロパティ’: ‘値’,}で。

サンプルHTML・スクリプト

サンプルHTML

どうしてこうも<span id="element-1">忘れっぽい</span>んだろう。もう少し<span id="element-2">記憶力</span>がよくなればな。
サンプルscript
1つ目の文字を赤色に、2つ目の文字を緑で太字にします。
$('#element-1').css('color','red');$('#element-2').css({'color':'green','font-weight':'bold'});

結果

どうしてこうも忘れっぽいんだろう。もう少し記憶力がよくなればな。

 

クラスを付与・消去する

jQuery ではクラスを指定して動的に消去したり追加することができます。

クラスを消す場合

$('要素').removeClass('クラス名');

複数クラス削除の順番は気にしなくて大丈夫。

クラスを付与する場合

$('要素').addClass('クラス名');

サンプル

どうしてこうも忘れっぽいんだろう。もう少し記憶力がよくなればな。

サンプルの文章の1つ目の要素「忘れっぽい」には、最初から sample-1を、2つ目の「記憶力」には sample-2 が適用してあります。

これを一度消して、sample-1に入れ替えます。さらに2つ目の要素「記憶力」にsample-2を加えます。

スタイル

<style>
.sample-1{color:blue;font-size:larger;font-weight:bold;}
.sample-2{color:white;background:red;}
</style>

HTML

どうしてこうも<span id="element-3" class="sample-2">忘れっぽい</span>んだろう。もう少し<span id="element-4">記憶力</span>がよくなればな。

script

$('#element-3').removeClass('sample-1').addClass('sample-2');
$('#element-4').removeClass('sample-2').addClass('sample-1');

結果

どうしてこうも忘れっぽいんだろう。もう少し記憶力がよくなればな。

 

クラスをすべて消す

クラスを全て削除したい時はクラスを取得してから removeClass() を使います。

どうしてこうも忘れっぽいんだろう。もう少し記憶力がよくなればな。

$('#element-5').removeClass();

結果

どうしてこうも忘れっぽいんだろう。もう少し記憶力がよくなればな。

これだけでもOK。うまくいかなければ↓。

var class_name = $('#myTable').attr('class');
$('#myTable').removeClass(class_name);

同じクラスを外したり加えたり

ボタンのオン・オフなどで同じクラスを入れたり外したりしたい時は、toggleClass() で。そのクラスがあれば外し、なければ足してくれます。

$('要素').toggleClass('クラス名');