使用隐藏字段值编写JQuery / Javascript IF / else语句

时间:2012-10-01 23:55:59

标签: javascript jquery html css hidden

我正在尝试根据通过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");
}
}

2 个答案:

答案 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'); 
}

代替。 (和其他颜色类似。)