2013-04-26 5 views
0

Я пытаюсь получить конкретный элемент в json, используя выделенную функцию, но я не могу понять, почему он не работает. Может кто-нибудь мне помочь?Создайте строку, которая будет использоваться для чтения в ответ 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(); 

ответ

1

Вы должны использовать категорию как этот

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

JSFIDDLE

+0

О человек, теперь я feeld немой. Спасибо, добрый сэр –

0

Поскольку category не имущество сам, но ссылка на свойство, которое вы не можете использовать оператору . для доступа к значению, вместо этого вам нужно использовать оператор [].

data.results[0][category] 

Демо: Fiddle

0

использование [], чтобы получить ссылку на объект, связанный .. . для объекта недвижимости

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

fiddle here

Смежные вопросы