2017-05-25 16 views
2

我一直在試圖編寫一個函數,它可以取值並將其添加到元素類。類似這樣的:如何通過addClass()函數動態更改類?

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

changeClass(red); 

任何幫助將非常感激!

+5

您使用'red',如果它是一個變量。你不是指'changeClass(「紅色」)嗎? –

+1

除非您打算訪問CSS'sheets'集合並動態創建新樣式,否則這是不可能的。相反,預先製作課程並根據需要添加/刪除它們。如果您確實需要動態調整,請直接對CSS進行更改,而不是類。 –

回答

0

你可以像下面: -

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