如何使用Jsonp响应绑定到DropDown?

时间:2016-12-20 06:02:25

标签: javascript jquery ajax

您好我正在使用jQuery Ajax将数据绑定到dropdown。我使用arcgis rest服务作为source.I能够获得响应但无法绑定到dropdown.Can任何人都可以帮助完成此操作。

$.ajax({  
  url: "url",  
  data: { f: "json", where: "1 = 1 ", returnGeometry: false },  
  dataType: "jsonp",
  success: function(response) {     
  console.log( response );

     var len = response.length;

            $("#ddlDistrict > option").remove();
            $('#ddlDistrict').append("<option value='-- Select --'>-- Select --</option>");

            for (var i = 0; i < len; i++) {
                $('#ddlDistrict').append('<option value="' + response[i].DistrictName + '">' + response[i].DistrictName + '</option>');
            }
  }  
});  

我的控制台输出是

enter image description here

2 个答案:

答案 0 :(得分:1)

success: function(response) {     
      console.log( response, typeof response );
      if(typeof response == 'string') {
            response = JSON.parse(response);
      }
      var len = response.features.length;

        $("#ddlDistrict > option").remove();
        $('#ddlDistrict').append("<option value='-- Select --'>-- Select --</option>");

        for (var i = 0; i < len; i++) {
        console.log(response.features[i]);
            $('#ddlDistrict').append('<option value="' + response.features[i].DistrictName + '">' + response.features[i].DistrictName + '</option>');
        }

}

答案 1 :(得分:0)

从回复中看来,您希望显示displayFieldName,其值为'DistrictName'

所以你必须传递密钥名称

for (var i = 0; i < len; i++) {
                $('#ddlDistrict').append('<option value="' + response[i].displayFieldName+ '">' + response[i].displayFieldName+ '</option>');
            }

现在从响应中我看到displayFieldName只是一个键。其中featuresfieldAliasesfields是数组,对象&amp;对象数组。

我不确定您是否要定位fields作为关键字,name作为关键字DistrictName。如果是o那么循环条件需要改变

 for (var i = 0; i < response.fields.length; i++) {
  $('#ddlDistrict').append('<option value="' + response.fields[i].displayFieldName+ '">' + response.fields[i].name+ '</option>');
    }