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。要了解更多细节,请使用对象!这将节省大量代码和时间。这似乎就是编程的全部内容:)谢谢。