0

我正在尝试使用专用函数在 json 中获取特定元素,但我无法弄清楚它为什么不起作用。谁能帮我?

我在这里设置了一个小提琴:http: //jsfiddle.net/jonigiuro/N5TTM/2/

代码:

var data = {
   "results":[
      {
         "reinsurance":{
            "africa":{
               "one":{
                  "name":"test",
                  "address":"test street",
                  "tel1":"tel1",
                  "tel2":"tel2",
                  "url":"http://www.google.com"
               }
            }
         }
      }
   ]
}

// FAKE RESPONSE

var AjaxInfo = {

init : function() {
    this.bindEvents();
},

bindEvents : function() {
    var self = this;

    $(document).ready(function() {

        self.renderData( 'reinsurance', 'africa', 'one' );

    })
},

renderData : function( category, country, name ) {

    console.log(data.results[0]); //ok
    console.log(data.results[0].category); //I pass 'insurance' as a category but it returns "undefined" because it looks for "category" instead

}
}

AjaxInfo.init();
4

3 回答 3

1

您需要使用这样的类别

console.log(data.results[0][category]);

JSFIDDLE

于 2013-04-26T09:32:00.140 回答
0

由于category不是属性本身,而是对属性的引用,因此您不能使用.运算符来访问该值,因此您需要使用[]运算符。

data.results[0][category]

演示:小提琴

于 2013-04-26T09:32:26.750 回答
0

用于[]获取相关对象引用...用于对象属性

 console.log(data.results[0][category])

在这里摆弄

于 2013-04-26T09:32:47.797 回答