4

我有JS代码:

$("#select_bank").change(function () {
  selected_bank = $("#select_bank option:selected").text();

  $.ajax({
    type: 'POST',
    dataType: 'html',
    data: {
      selectedBank: selected_bank
    },
    url: '<?= base_url() . 'atm/select_region'; ?>',
    success: function (list_regions) {
      foreach(keyVar in list_regions) {
        alert(list_regions[keyVar]);
      }
    }
  });
});

在回调“成功”时,我从服务器的脚本中获取数组 - 在警报中我看到了“数组” - 所以我想像上面编码的那样在客户端通过这个数组进行迭代,但是当我在控制台中得到错误时 - “未定义 var keyVar”。据我了解,我需要将list_regions参数类型转换为数组或其他方式来修复它。请问,怎样才能变好?谢谢!

更新:在此处输入图像描述

4

3 回答 3

6

如果我是对的,您不能以这种方式将 foreach 循环转换为 jquery。

您应该使用 .each 来迭代值

$.each(list_regions, function(index, value) {
  alert(value);
});

您可以在此处找到更多信息。

于 2012-09-01T06:17:18.700 回答
4

Javascript没有foreach构造。$.eachjQuery的使用方法

于 2012-09-01T06:14:19.783 回答
0

尝试这个:

$("#select_bank").change(function(){
    // The following line was missing a var declaration,
    // Making it an implicit global
    var selected_bank = $("#select_bank option:selected").text();

    $.ajax({
        type:'POST',
        dataType:'html',
        data: { selectedBank: selected_bank },
        url:'<?=base_url().'atm/select_region'; ?>',
        success:function(list_regions){
            var keyVar;
            for(keyVar in list_regions) {
                if (list_regions.hasOwnProperty(keyVar)) {
                    alert(list_regions[keyVar]);
                }
            }
        }
    });

});
于 2012-09-01T06:13:16.857 回答