读书人

JS里的switch如何写

发布时间: 2012-10-21 09:00:07 作者: rapoo

JS里的switch怎么写?
// switch(temp.message.List[i].State)
/// {
// case 0:
// orderstate="未付款";
// break;
// case 1:
// orderstate="未发货";
// break;
// case 2:
//// orderstate="未收货";
// break;
// case 3:
// orderstate="已收货";
// break;
//
// }


if(temp.message.List[i].State==0)
orderstate="未付款";
else if(temp.message.List[i].State==1)
orderstate="未发货";
else if(temp.message.List[i].State==2)
orderstate="未收货";
else
orderstate="已收货";


temp.message.List[i].State字段在数据库里为int 型,我这个switch语句为什么不执行啊~~~用if ,else语句就好的很……真是无语了,哪位大侠不吝赐教,小女子不胜感激!!!

[解决办法]
在数据库是int,到了页面可未必了
你试试
alert(typeof temp.message.List[i].State);
看看究竟是数值还是字符串,如果是string
就把case后的数字加上引号

[解决办法]
目测 原因就是 temp.message.List[i].State是字符串导致的

而if可以成功是因“==”不检测类型,"0"==0是为true的,===才会检测类型是否相同,"0"===0为false
[解决办法]
switch(parseInt(temp.message.List[i].State))
{
case 0:
orderstate="未付款";
break;
case 1:
orderstate="未发货";
break;
case 2:
orderstate="未收货";
break;
case 3:
orderstate="已收货";
break;

}

要转成整形的。
[解决办法]

JScript code
var id=temp.message.List[i].State;//id-0 强制转数字 switch(id-0) {   case 0:   orderstate="未付款";   break;  case 1:   orderstate="未发货";  break;   case 2:   orderstate="未收货";  break;   case 3:  orderstate="已收货"; break; } alert(orderstate);
[解决办法]
// switch(parseInt(temp.message.List[i].State))
/// {
// case 0:
// orderstate="未付款";
// break;
// case 1:
// orderstate="未发货";
// break;
// case 2:
//// orderstate="未收货";
// break;
// case 3:
// orderstate="已收货";
// break;
//
// }

读书人网 >JavaScript

热点推荐