我有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
param作为数组或其他方式进行类型转换来修复它。请问,如何让它变得更好?
谢谢!
upd:
答案 0 :(得分:5)
如果我是对的,你就不能以这种方式将foreach循环转换为jquery。
您应该使用.each来迭代值
$.each(list_regions, function(index, value) {
alert(value);
});
您可以找到更多信息here。
答案 1 :(得分:3)
Javascript没有foreach
构造。使用jQuery的$.each
方法
答案 2 :(得分: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]);
}
}
}
});
});