我有一个ID为‘#Main’的div,我试图用变量集合来更改这个div的CSS类。在变量之间使用+‘’+似乎会在类之间添加大量空空间,因此我试图使用数组中的所有变量并使用拆分属性,但到目前为止我还不能这样做。
我的代码:
jQuery
var MainClasses ="";
var BackgroundColor="";
var BackgroundPattern ="";
var TxtColor="";
// Some code & conditions here which is assigning CSS classes to these variables
BackgroundColor = "Background-Red";
BackgroundPattern ="Pattern-2";
TxtColor = "Txt-Color-Green";
upDateTheme();
function upDateTheme() {
$('#Main').removeClass();
var ClassColletion = 'BackgroundColor, BackgroundPattern, TxtColor';
MainClasses = ClassColletion.split(' ');
$( '#Main' ).addClass(MainClasses );
}预期的结果
<div id="Main" class="Background-Red Pattern-2 Txt-Color-Green"> Some Content here </div>发布于 2017-12-19 15:40:46
这里有几件事:
MainClasses对象初始化为字符串。事实上,甚至不要使用那个额外的变量。只需使用您的ClassCollection。split时,请在逗号上拆分,而不是空格。addClass)。数组对象不支持开箱即用。这应该能让你:
var BackgroundColor="";
var BackgroundPattern ="";
var TxtColor="";
// Some code & conditions here which is assigning CSS classes to these variables
BackgroundColor = "Background-Red";
BackgroundPattern ="Pattern-2";
TxtColor = "Txt-Color-Green";
upDateTheme();
function upDateTheme() {
$('#Main').removeClass();
var ClassColletion = [BackgroundColor,BackgroundPattern,TxtColor];
for (var i in ClassColletion) {
if (i && ClassColletion[i]) {
$( '#Main' ).addClass(ClassColletion[i]);
}
}
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='Main'>main div</div>
发布于 2017-12-19 15:46:14
来自jQuery文档:
.addClass(className)className;Type: String;要添加到每个匹配元素的class属性中的一个或多个空格分隔类。
因此,
BackgroundColor = "Background-Red";
BackgroundPattern = "Pattern-2";
TxtColor = "Txt-Color-Green";
upDateTheme();
function upDateTheme() {
$('#Main').removeClass();
var ClassColletion = [BackgroundColor, BackgroundPattern, TxtColor];
var MainClasses = ClassColletion.join(' ');
$('#Main').addClass(MainClasses);
}或者,在一个单一的表达式:
function upDateTheme() {
$('#Main').removeClass().addClass([BackgroundColor, BackgroundPattern, TxtColor].join(' '));
}https://stackoverflow.com/questions/47890310
复制相似问题