【发布时间】:2011-07-24 18:37:34
【问题描述】:
抱歉这个愚蠢的问题。
如何在 javascript switch-case 语言元素中为 case 使用条件?
如下例所示,当变量 liCount 为 0 时,大小写应该匹配;但是,我的代码不起作用:
switch (liCount) {
case 0:
setLayoutState('start');
var api = $('#UploadList').data('jsp');
api.reinitialise();
break;
case (liCount<=5 && liCount>0):
setLayoutState('upload1Row');
var api = $('#UploadList').data('jsp');
api.reinitialise();
break;
case (liCount<=10 && liCount>5):
setLayoutState('upload2Rows');
var api = $('#UploadList').data('jsp');
api.reinitialise();
break;
case (liCount>10):
var api = $('#UploadList').data('jsp');
api.reinitialise();
break;
}
感谢您的建议!
【问题讨论】:
-
如果你想这样做,请使用 if 语句......
-
你不应该忽视每个告诉你使用
ifs的人,因为他们是对的。这是switch的糟糕应用。 -
我不敢相信这个解决方案还没有提供。您可以这样做,该语句只需要评估 switch 子句中的值。所以这会起作用:
var liCount = 2; switch (liCount) { case 0: console.log(0); break; case (liCount<=5 && liCount>0) && liCount: console.log('liCount<=5 && liCount>0'); break; case (liCount<=10 && liCount>5) && liCount: console.log('liCount<=10 && liCount>5'); break; case (liCount>10) && liCount: console.log(liCount); break; }
标签: javascript conditional-statements select-case