Javascript开关始终默认

时间:2013-03-19 12:00:07

标签: javascript loops switch-statement default

我正在开发一个基于值设置2个变量的开关,如下所示:

switch(_drukte) {
    case "normaal": 
        _gradients.push("green");
        _widths.push("20%");
    break;
    case "drukker": 
        _gradients.push("yellow");
        _widths.push("40%");
    break;
    case "gezellig druk": 
        _gradients.push("orange");
        _widths.push("60%");
    break;
    case "druk": 
        _gradients.push("red");
        _widths.push("80%");
    break;
    case "vol": 
        _gradients.push("full");
        _widths.push("100%");
    break;
    default:
        _gradients.push("green");
        _widths.push("20%");
    break;
}

出于某种原因,这总是调用默认值。 _drukte来自AJAX get on JSON文件,值随循环而变化。 我已经提醒了_drukte的价值并且它符合预期(目前它是“normaal”,“drukker”,“gezellig druk”,“druk”和“vol”)。 我试图弄乱其他情况(甚至使其无效的javascript),它只是调用默认值。

有人知道为什么吗?

1 个答案:

答案 0 :(得分:2)

我不想太偏离窗外,但我几乎可以保证你的 ajax请求的返回值不适合你case'的100% ES。

如果我是你,我会在console.log( _drukte );声明之前直接switch

也许是白色空间?大写字母?

这是我能提供的最佳答案,而不会看到您的实际代码,因此在遇到_drukte时,请尝试确定switch statement包含哪个确切值。