首页 > 解决方案 > 如何在 IE 中访问 JQuery Succes/Done 函数中的数组?

问题描述

我有一个函数,我通过一个数组来获取我们位置的距离。从那个调用返回后,我想用这个新的距离值更新原始数组。它适用于除 IE 之外的所有浏览器(在 IE11 上测试)。看来该数组被认为是未定义的。

错误:无法设置未定义或空引用的属性“LocationDistance”

LocationsArr确实存在,我可以在外部函数中从中提取/查看值,但不能在调用的success:函数中$.ajax

任何帮助将不胜感激!

function getLocationDistance() {
  let origin = UserLatitude + "," + UserLongitude
  let l = 0
  let distance = 0
  for (let i = 0; i < LocationsArr.length; i++) {
    let data = {
      ak: "XXXXXXXXXXXX",
      origin: origin,
      ID: LocationsArr[i].LocationID,
      destination: LocationsArr[i].LocationDestination
    };
    $.ajax({
      type: 'GET',
      url: "https://www.kaleidahealth.org/GoogleAPIServices/DistanceMatrix.svc/GetTripInfo",
      data: data,
      cache: false,
      dataType: "jsonp",
      success: function(result) {
        distance = result.distance.replace(" miles", "")

        // IE CAN'T SEE LocationsArr ARRAY - ALL OTHER BROWSERS CAN
        LocationsArr[i].LocationDistance = distance;

        l++;
        if (l === i) {
          buildLocationList();
        }
      },
      error: function(err) {
        alert("ERROR: " + JSON.stringify(err))
      }
    })
  }
}

标签: javascriptarraysinternet-explorer

解决方案


推荐阅读