2017-05-25 9 views
2

私は値をとり、それを要素クラスに追加できる関数を記述しようとしていました。このようなもの:addClass()関数でクラスを動的に変更するにはどうすればよいですか?

var changeClass = function(newClass){ 
    $("div").removeClass().addClass(newClass); 
}; 

changeClass(red); 

本当にありがとうございました!

+5

。 'changeClass(" red ")'を意味しないのですか? –

+1

CSS 'sheets'コレクションにアクセスし、新しいスタイルを動的に作成する予定がない限り、これは不可能です。代わりに、事前にクラスを作成し、必要に応じてクラスを追加/削除します。本当に動的調整が必要な場合は、クラスではなくCSSを直接​​変更してください。 –

答えて

0

あなたは以下のようにそれを行うことができます - それは変数であるかのようにあなたが `red`を使用している

var changeClass = function(newClass){ 
 
    $("div").removeClass().addClass(newClass); // single line to remove class+add new class 
 
}; 
 
$(document).ready(function(){ 
 
    changeClass("red"); // call function with string value 
 
});
.green{ 
 
    background:green; 
 
    color:white; 
 
} 
 

 
.red{ 
 
    background:red; 
 
    color:white; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="green">div1</div><br> 
 
<div class="green">div2</div><br> 
 
<div class="green">div3</div><br> 
 
<div class="green">div4</div><br> 
 
<div class="green">div5</div><br>

2

あなたはすべてdivのすべてのクラスを交換しようとしているとします...あなたはそれをほとんど持っていました。

var changeClass = function(newClass){ 
    $("div").removeClass() 
    $("div").addClass(newClass); 
}; 

var red = "red" // I'm guessing this is what you want? 
changeClass(red); 
+1

実際に、OPに複数の「div」があった場合、コードは引き続き機能します。結果は、ページ内のすべてのdivがクラスをredで置き換えることになります。これは期待されるかもしれません。 –

+0

あなたが正しいです、私はそれに応じて私の答えを変更しました。ありがとう。 –

+0

関数内で値を文字列にする方法はありますか? – Supergogoman91

関連する問題