1

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

2 回答 2

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");
}
于 2012-10-01T23:58:46.673 回答
3

您使用的是赋值运算符而不是比较运算符。

尝试

if(colorStatus === 'RED'){
    $('.circleFrame').addClass('redState'); 
}

反而。(对于其他颜色也是如此。)

于 2012-10-01T23:57:17.363 回答