【问题标题】:How to retrieve data from a jquery ajax response that is a list of maps?如何从作为地图列表的 jquery ajax 响应中检索数据?
【发布时间】:2019-04-23 12:18:35
【问题描述】:

所以我收到了来自 地图列表 的 ajax 调用的响应。我需要遍历响应,并从列表中的每个映射中,使用键“schoolName”获取特定值。我的代码会明确我想要做什么:-

 success:function(response){
    response.each(function(index,value){
        console.log(value.get("schoolName"))
    })
}

这引发了一个错误:- Menu.html:33 Uncaught TypeError: response.each is not a function

如何从响应列表中的所有地图中获取“schoolName”值?

【问题讨论】:

  • response 长什么样子?
  • 响应是地图列表:-0: {schoolId: 69448, schoolName: "ABC SCHOOL"} 1: {schoolId: 69453, schoolName: "ABCSchool"} 2: {schoolId: 69412, schoolName: "Alianza Educativa"} 等等...

标签: javascript jquery arrays ajax object


【解决方案1】:

尝试使用 $.each()

$.each(response, function (index, value) {
   console.log(value.schoolName)            
});

来源:jQuery Page

【讨论】:

  • 现在它说“value.get 不是函数”。
  • 尝试使用 value.schoolName 而不是 value.get("schoolName") 访问响应
【解决方案2】:

首先,您必须解码响应。也许它在 Json 中?

jQuery.parseJSON(response);

那么,正确使用jQuery.each

success:function(response){
    jQuery.each(jQuery.parseJSON(response), function(index, value){
        console.log(value.get("schoolName"))
    })
}

为了更准确,响应模板可能会有所帮助

【讨论】:

  • 0: {schoolId: 69448, schoolName: "ABC SCHOOL"} 1: {schoolId: 69453, schoolName: "ABCSchool"} 2: {schoolId: 69412, schoolName: "Alianza Educativa"}
【解决方案3】:

因为它是一个对象,你可以使用$.each。也只需使用点符号访问schoolName

success:function(response){
    $.each(response, function(index,value){
        console.log(value.schoolName)
    })
}

【讨论】:

    【解决方案4】:

    不确定您的响应是什么样的,但如果schoolName 是一个对象的键并且您的响应是一个对象数组,您可以这样做:

    (response) => {
       for (let i of response) {
          console.log(i.schoolName);
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 2019-08-29
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      相关资源
      最近更新 更多