//  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语句就好的很……真是无语了,哪位大侠不吝赐教,小女子不胜感激!!!

解决方案 »

  1.   

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

  2.   

    目测 原因就是 temp.message.List[i].State是字符串导致的而if可以成功是因“==”不检测类型,"0"==0是为true的,===才会检测类型是否相同,"0"===0为false
      

  3.   

    switch(parseInt(temp.message.List[i].State))
       {
       case 0:
       orderstate="未付款";
       break;
       case 1:
       orderstate="未发货";
       break;
       case 2:
       orderstate="未收货";
       break;
       case 3:
       orderstate="已收货";
       break;
       
       }要转成整形的。
      

  4.   

    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);
      

  5.   

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

  6.   

    用typeof可以获得
    但这其实是js灵活性的体现,用熟了会觉得越加舒服,写参数,调函数,返回值时都不用考虑参数和返回值的类型,函数可以接收多种类型参数,或根据参数返回不同类型的结果
      

  7.   

    switch( event.keyCode ){
            case 69: doanything
       
            case 72: doanything
               
            case 73:doanything
            default:
                break;
    }
      

  8.   


     switch(parseInt(temp.message.List[i].State))
       {
       case 0:
       orderstate="未付款";
       break;
       case 1:
       orderstate="未发货";
       break;
       case 2:
       orderstate="未收货";
       break;
       case 3:
       orderstate="已收货";
       break;
       default: return("invalid"); 
       break;   } 
      

  9.   


    switch(~~temp.message.List[i].State){
      ....
    }