Javascript 通过js数组和变量赋值循环不';行不通

Javascript 通过js数组和变量赋值循环不';行不通,javascript,jquery,Javascript,Jquery,我有一个js代码的价格,这几天来一直困扰着我,下面是一段代码, 问题在于处理ajax响应的过程中。奇怪的是,这段代码在我的本地机器上运行良好,但在在线服务器上运行不正常,我已经用代码对问题进行了注释 这段代码的奇怪之处在于,当我把它放到网上时,currField和tempfieldDivId变量根本不起作用,temp变量(我为调试而添加的)以正确的值打印在警报中。但它在交换机的情况下失败了。 在开关中,它总是落在默认选项上,并打印“不匹配” $.ajax({ 类型:“POST”, url:“co

我有一个js代码的价格,这几天来一直困扰着我,下面是一段代码, 问题在于处理ajax响应的过程中。奇怪的是,这段代码在我的本地机器上运行良好,但在在线服务器上运行不正常,我已经用代码对问题进行了注释

这段代码的奇怪之处在于,当我把它放到网上时,
currField
tempfieldDivId
变量根本不起作用,
temp
变量(我为调试而添加的)以正确的值打印在警报中。但它在交换机的情况下失败了。 在开关中,它总是落在默认选项上,并打印“不匹配”

$.ajax({
类型:“POST”,
url:“components/form/form_processing.php”,
数据:dataStringfrmFlds,
cache:false,
成功:功能(opt){
警报(opt);//opt正常,返回:发货人、第一方通知方、收货人、装运类型、包装要求、测试要求、日期、请求预期日期、订单发布者
var defaultFields=opt.split(',');
var numFields=defaultFields.length;
对于(i=0;i
如果有人能在这方面帮助我,我将非常感激。多谢各位

  • $(tempfieldDivId.show()是否需要在tempfieldDivId之前添加“#”
  • opt
    发货方、第一方、通知方、收货人、装运类型、包装要求、测试要求、日期、请求日期、预期日期、订单通知方
    在您的
    switch
    语句中,我没有看到它们中的任何一个匹配任何情况,当然每次它都会下降到默认值

  • 控制台日志
    defaultFields
    并查看阵列内部。它是否正确显示?在控制台日志中打印该数组..因为它看起来很好…这应该可以工作..我认为案例与defaultFields值不同…我这么说是因为您在顶部写入了defaultFields值,这与案例不同。谢谢大家,我正在研究建议。@wong2这非常有用,是的,我忽略了在tempfieldDivId之前添加#。但我不明白为什么开关会变成默认开关。如果你能详细说明,那就太好了。啊!我明白了,我一直都很傻!我将检查变量和开关情况。@posal.of.秋
    switch
    将从上到下比较变量
    tmp
    (它是
    defaultFields
    中的一个元素)和它的
    情况,直到匹配发生,如果没有
    情况
    match
    tmp
    ,它将下降到
    默认值。(根据您给出的
    opt
    值,这就是发生的情况)最后,它得到了解决,所以基本上我完全忽略了服务器响应,这与本地机器和在线服务器的情况不同。本地机器
    os\u id、fnp\u id、cinfo\u id、订单发货类型、订单请求表单、订单日期、订单需求
    
     $.ajax({
                    type: "POST",
                    url: "components/form/form_processing.php",
                    data: dataStringfrmFlds,
                    cache:false,
                    success: function(opt){
    
                        alert(opt);// opt is fine, returns:  ship_to,first_notify_party,consignee,shipment_type,packaging_requirements,testing_requirements,date,request_expected_date,order_ponunber
    
                        var defaultFields = opt.split(',');
                        var numFields = defaultFields.length;
    
                        for(i = 0; i < numFields; i++){
                              var temp              = "";   
    
                              var currField         = defaultFields[i];
                              var tempfieldDivId    = "def_"+currField;
    
                              //these doesnt work
                              $(tempfieldDivId).show();
                              $('#'+currField).attr('required','required');
    
                               temp = currField;
                               alert(temp); //this does print the field name in the alert   
    
                               //these doesnt work either      
                               switch(temp){
    
                                     case "os_id":
                                     $("#def_os_id").show();
                                     break;
    
                                     case "ff_id":
                                     $("#def_ff_id").show();
                                     break;
    
                                     case "fnp_id":
                                     alert("HI there");
                                     $("#def_fnp_id").show();
                                     break;
    
                                     case "cinfo_id":
                                     $("#def_cinfo_id").show();
                                     break;
    
                                     case "order_date":
                                     $("#def_order_date").show();
                                     break;
    
                                     case "order_shiptype":
                                     $("#def_order_shiptype").show();
                                     break;
    
                                     case "order_portdis":
                                     $("#def_order_portdis").show();
                                     break;
    
                                     case "order_requestform":
                                     $("#def_order_requestform").show();
                                     break;
    
                                     case "order_specialinstructions":
                                     $("#def_order_specialinstructions").show();
                                     break;
    
                                     case "order_packreq":
                                     $("#def_order_packreq").show();
                                     break;
    
                                     case "order_testreq":
                                     $("#def_order_testreq").show();
                                     break;
    
                                     case "order_reqexdate":
                                     $("#def_order_testreq").show();
                                     break;
    
                                     default:
                                    alert("No match");//this is printed out all the times
                                     break;
                                   }//end of switch
                            }//end of for loop
                      }
                });