Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript开关语句中的默认值仅适用于一种情况,而不是两种情况?_Javascript_Switch Statement - Fatal编程技术网

Javascript开关语句中的默认值仅适用于一种情况,而不是两种情况?

Javascript开关语句中的默认值仅适用于一种情况,而不是两种情况?,javascript,switch-statement,Javascript,Switch Statement,当我仅使用一个案例编写此代码时,当我单击除1或2之外的案例时,警报会正常触发。当我添加多个时,当我单击除1或2之外的案例时,默认情况下不再触发警报。有什么好处?先谢谢你 function displayLoc(locNum) { switch (locNum) { case 1: $('#loc-name').html('Google'); $('#loc-web').attr('href','http://www.go

当我仅使用一个
案例
编写此代码时,当我单击除1或2之外的
案例时,警报会正常触发。当我添加多个时,当我单击除1或2之外的
案例时,默认情况下不再触发警报。有什么好处?先谢谢你

function displayLoc(locNum) {

    switch (locNum) {

        case 1:
            $('#loc-name').html('Google');
            $('#loc-web').attr('href','http://www.google.com');
          break;

        case 2:
            $('#loc-name').html('StackOverflow');
            $('#loc-web').attr('href','http://www.stackoverflow.com');
          break;

        default:
            alert('Location coming soon!');
    }
}

你的代码看起来很好。一定是别的原因

但是,我可以向您建议不同的解决方案吗

var locations = [
    ['Google', 'http://www.google.com'],
    ['StackOverflow', 'http://www.stackoverflow.com']
];

function displayLoc(locNum) {
    var loc = locations[locNum];

    if (!loc) {
        alert('Location coming soon!');
        return;
    }

    $('#loc-name').html(loc[0]);
    $('#loc-web').attr('href', loc[1]);
}

locNum是2吗?JavaScript确实有效,所以我怀疑还有其他原因。添加一个
console.log()
调用以查看“locNum”是什么,并验证您是否真的将其加入到函数中。需要jsfiddle。要了解更多细节,请使用对象!这将节省大量代码和时间。这似乎就是编程的全部内容:)谢谢。