我正在尝试根据通过ajax加载的隐藏字段的值为div分配一个CSS类。
我的代码在调用时返回隐藏字段的正确值,但无论结果如何,我的div总是被赋予相同的css类。
我猜我的IF语句语法有问题:
function doneLoading(){
var colorStatus = $('#colorStatus').val();
if(colorStatus = 'RED'){
$('.circleFrame').addClass('redState');
}
else if(colorStatus = 'GREEN'){
$('.circleFrame').addClass('greenState');
}
else if(colorStatus = 'YELLOW'){
$('.circleFrame').addClass('yellowState');
}
else {
alert("Something is broken");
}
}
答案 0 :(得分:5)
这是因为您正在进行=
分配而不是==
比较。您可能希望使用http://jshint.com来帮助找到这些类型的错误。
请考虑以下替代方法来缩短您的代码。
function doneLoading() {
var color = $('#colorStatus').val().toLowerCase();
$('.circleFrame').addClass(color + 'State');
}
要维持验证,您可以这样做:
var colors = {green:1, red:1, yellow:1};
function doneLoading() {
var color = $('#colorStatus').val().toLowerCase();
if (colors.hasOwnProperty(color))
$('.circleFrame').addClass(color + 'State');
else
alert("Something is broken");
}
答案 1 :(得分:3)
您正在使用赋值运算符而不是比较运算符。
尝试
if(colorStatus === 'RED'){
$('.circleFrame').addClass('redState');
}
代替。 (和其他颜色类似。)