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;
//
// }