【问题标题】:Accessing key value pairs from ajax call with jQuery使用 jQuery 从 ajax 调用访问键值对
【发布时间】:2015-03-25 07:50:03
【问题描述】:

我正在使用 jquery 从服务器调用 Json 对象。这是我的电话:

$.getJSON( url, function( data ) {...}

我正在(从 console.log)返回以下对象:

> 0: Object
   cable key: "1"
   cable type: "Building Wire..."
> 1: Object
   cable key: "2"
   cable type: "PVC Wire..."
...

我正在尝试像下面的示例一样访问键和值,但没有任何运气。

$.getJSON( url, function( data ) {

    $.each( data, function( key,  value ) {

         $( "#CableType" ).append( $( "<option value='" + value['cable key'] + "'>" + value['cable type'] + "</option>" ) );

    });
})

感谢您的帮助

【问题讨论】:

标签: javascript jquery ajax


【解决方案1】:

您正在尝试获取 VALUE 的属性而不是对象。使用

data['cable key']

而不是

value['cable key']

此外,在循环中向 DOM 添加元素是低效的。您需要将 html 收集到一个字符串中,并在循环结束后将其放入 DOM 中。你可以这样做:

$.getJSON( url, function(data){
    var htmlCollection = "",
        propertyName;

    data.forEach(function(pair){            
        htmlCollection += "<option value='" + pair['cable key'] + "'>" + pair['cable type'] + "</option>";
    });

    $( "#CableType" ).append(htmlCollection);
});

【讨论】:

  • 嗨@Yair Tavor,当我尝试你的方法时(数据['varname'])我得到了未定义。
  • 您是否尝试过使用 for-in 循环而不是 $.each 函数?
  • 啊,我将其更改为“data.forEach(function(d) {”循环,现在可以通过“d.cable_type”访问这些值。谢谢!
  • 当然!愚蠢的我,数组中的数据不是对象。我修复了代码示例。
猜你喜欢
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
相关资源
最近更新 更多