$ .each in jquery不起作用

时间:2014-08-25 07:11:58

标签: jquery ajax

我有像

这样的jQuery函数
Function getCities(abbr) {
         $.ajax({
                     type: "POST",
                     url: "Main/aaa",
                     data1: "{}",
                     success: function (response) {

                     }
 });

作为响应,我得到了一些对象数组。格式看起来像

[{id: 1, decr: "some string"},
 {id: 3, decr: "some string2"}]

等..(数组的每个成员都有值id和desc)

我的问题是解析这个响应并得到一些带有id和desc值的列表。我试着写点像

$.each(response, function (key, value) {
   items += "<option value='" + key + "'>" + value + "</option>";
});

但这对我不起作用。

每个都有问题吗?我检查了一下,得到了回复,我只需要找到解析它的方法。

2 个答案:

答案 0 :(得分:2)

您的回复是JSON类型。在查看了each()函数之后,我修改了你的每个函数,如下所示。

试试这个:

$.each(response, function (key, value) {
   items += "<option value='" + key + "'>" +value.id+" "+value.decr+ "</option>";
});

答案 1 :(得分:0)

虽然不是您的问题,但是将函数语言中的每个值转换为其他值的行为称为映射。和jQuery does support it

var options = $.map(response, function(item){
    return $('<option />', { value: item.id, text: item.desc }) 
});

这将返回option个元素的数组。学习如何在jQuery编程时以更实用的方式编写,从长远来看是值得的。