【问题标题】:jQuery looping .each() JSON key/value not workingjQuery循环.each()JSON键/值不起作用
【发布时间】:2013-11-26 23:55:38
【问题描述】:

我在通过 jQuery .each() 函数循环 JSON 的键/值时遇到问题

最初我有一个这样的 JSON:

json = {"aaa":[
              {"id":"1","data":"aaa1data"}
              ,{"id":"2","data":"aaa2data"}
              ],
        "bbb":[
              {"id":"3","data":"bbb1data"}
              ]
       }

我想遍历 JSON(aaa 和 bbb)中的所有键/值元素并检索内部 JSON 数组以再次循环,所以我尝试了

$(json).each(function(index,data)
{
    var zzz = data;
    $(zzz).each(function(index,data))
    {
       //some other stuff
    }
}

然而,我发现第一个.each()函数会将整个json视为一个单独的结构,不会循环其元素的key。从.each()函数接收到的数据参数始终是原始json本身.我永远无法获得指向 aaa 和 bbb 的内部 JSON 数组的引用。

这里会出现什么问题,我应该如何通过 jQuery 正确循环 JSON 中的所有键/值元素?

【问题讨论】:

    标签: javascript jquery json each


    【解决方案1】:

    由于您有一个对象,而不是 jQuery 包装器,因此您需要使用 $.each() 的不同变体

    $.each(json, function (key, data) {
        console.log(key)
        $.each(data, function (index, data) {
            console.log('index', data)
        })
    })
    

    演示:Fiddle

    【讨论】:

    • 有效!感谢您的解释,因为我不知道 $.each() 和 $(selector).each() 的工作方式不同:)。
    • @Arun p Johny - console.log('index', data) 这里的数据是参数或数组索引,与数据这个词混淆了,如果我只想要第二个值,我怎么能得到?没有身份证?
    • 我的json是{ "0":{"tech_id":"35","tech_name":"Ajax"}, "1":{"tech_id":"36","tech_name":"Ajax"} }
    【解决方案2】:

    有了一个简单的 JSON 对象,你就不需要 jQuery:

    for (var i in json) {
       for (var j in json[i]) {
         console.log(json[i][j]);
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 2016-07-31
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 2014-08-31
      相关资源
      最近更新 更多