Javascript Jquery调用两个api来检索两个嵌套$内的不同动态元素。每个循环

Javascript Jquery调用两个api来检索两个嵌套$内的不同动态元素。每个循环,javascript,jquery,json,api,loops,Javascript,Jquery,Json,Api,Loops,我有一个包含顶级元素的api链接。从每个元素中,我需要构建第二个api调用的结尾,该调用将为我提供所需的其余元素并将它们提取出来 假设第一个json是(urlphonebrands),它包含3个手机品牌(苹果、三星和诺基亚)。第二个json调用取决于每个品牌名称,如urlphonebrands/Nokia或urlphonebrands/Samsung或urlphonebrands/Apple自动生成 我需要遍历每个品牌名称,以获得颜色、电池寿命和大小等属性。但每种颜色都有另一个选择循环,例如黑色

我有一个包含顶级元素的api链接。从每个元素中,我需要构建第二个api调用的结尾,该调用将为我提供所需的其余元素并将它们提取出来

假设第一个json是(urlphonebrands),它包含3个手机品牌(苹果、三星和诺基亚)。第二个json调用取决于每个品牌名称,如urlphonebrands/Nokia或urlphonebrands/Samsung或urlphonebrands/Apple自动生成

我需要遍历每个品牌名称,以获得颜色、电池寿命和大小等属性。但每种颜色都有另一个选择循环,例如黑色、白色和红色。我的最终结果是

Apple
    battery life: 
        6h
    color: 
        blue 
        black
Samsung: 
    battery life: 
        6h
    color:
        blue 
        black
Nokia:
    battery life: 
        3h
    color: 
        blue 
虽然我能够成功地循环每个顶层元素,但我只能检索第一个项目的最后一个颜色元素,这表明我错误地构建了第二个循环。我花了几个小时看了看,觉得我需要一些帮助。这就是我所拥有的

$.getJSON("urlphonebrands", function(data){

    var brandBlock = data[0]['name'];

    $.each(data, function(index, brandBlock){

        var brand = brandBlock.name;

        $('#table').append('<tr><td>' + brand + '</td></tr>');

        //It works fine until this point

        $.getJSON("phonebrandsurl" + brand, function(data){

            $.each(brand, function (index2, brand){

                var color = data[0].name[0].color;

                $('#table').append('<tr><td>' + color + '</td></tr>');

            });


        });


    });

});
这是第二次api调用后的console.log输出

[Object]
0: Object
brand: Array[17]
0: Object
battery life: "6h"
colors: Object
color: "blue"

尝试将第二个
getJSON
包装到匿名函数中,并将brand作为参数传递:

(function(brand){
  $.getJSON('phonebrandsurl' + brand, function(data){
  // ...
}(brand))

你好,简。很抱歉我回复晚了。我尝试了这个选项,但输出没有改变。更新:我能够通过仔细检查包装器对象来解决这个问题。我得到了错误的对象,得到了一个“未定义”的响应。循环现在可以工作了。
(function(brand){
  $.getJSON('phonebrandsurl' + brand, function(data){
  // ...
}(brand))