我使用$ .getJSON从.json文件中获取数据。我的.json文件的结构如下所示
data.json
{
"foo" : {
"foo1" : {
"prop1": "foo1's prop1",
"prop2": "foo1's prop2",
"prop2": "foo1's prop3",
},
...
},
"bar" : {
"bar1" : {
"prop1": "bar1's prop1",
"prop2": "bar1's prop2",
"prop2": "bar1's prop3",
},
...
},
...
}
和我的HTML结构
<div class="container">
<div class="container_header">Choose</div>
<a href="#" class="container_a" id="foo">Foo</a>
<a href="#" class="container_a" id="bar">Bar</a>
...
</div>
<div class="second_container">
<div class="container_header">Choose</div>
<div id="get_json">
</div>
</div>
包含$ .getJSON 的和.js文件
$(document).ready(function() {
var $bolumler = $('#get_json');
$(".container_a").click(function(event){
var $a_id = $(this).attr('id');
$.getJSON('data.json', function(data) {
$bolumler.html('');
$bolumler.fadeOut(300, function() {
if ($a_id == "foo") {
$.each(data.foo,function(i,data2) {
$bolumler.append("<a href='#'>"+data2.prop1+"</a>");
});
} else if ($a_id == "bar") {
...// lots of else if
}
});
$bolumler.fadeIn(300);
});
});
});
我想根据点击的id来从data.json获取数据。
例如,如果我先点击一个-which有id foo-我想得到foo1,foo2 ...那么我想使用他们的prop1,pro2,...值。如果是州长,那么我可以通过很多其他方式实现这一目标,但这很长。是否可以使用$.each(variable,function(){});
。我试过这些 - 无情 - 但他们没有工作。
$.each(data.$bk,function(i,data2) {
var newData = data+"."+$bk;
$.each(newData,function(i,data2) {
答案 0 :(得分:0)
您可以根据需要使用它来获取对象..
data["foo"]
或在你的情况下
data[$a_id]
您也可以在$ .each
中执行此操作