将$ .each()与变量一起使用

时间:2014-08-11 18:40:02

标签: javascript jquery getjson each

我使用$ .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) {

1 个答案:

答案 0 :(得分:0)

您可以根据需要使用它来获取对象..

data["foo"]

或在你的情况下

data[$a_id]

您也可以在$ .each

中执行此操作