Jquery的两个api调用在两个嵌套的$中检索不同的动态元素.每一个循环
Jquery two api calls to retrieve different dynamic elements inside two nested $.each loops
我有一个包含顶部元素的api链接。对于每个元素,我需要构建第二个api调用的末尾,该调用将为我提供所需的其余元素并将它们拉出。
假设第一个json是(urlphonebrands),包含3个手机品牌(Apple, Samsung &诺基亚)。第二个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
虽然我能够成功地遍历每个top元素,但我只能检索到第一个项目的最后一个color元素,这表明我错误地构建了第二个循环。我看了几个小时,觉得我需要一些帮助。这是我的,
$.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>');
});
});
});
});
得到的结果是
Apple
blue
blue
Samsung
blue
blue
Nokia
blue
这是第二个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))
相关文章:
- 在Qualtrics中,介绍如何动态连接两个滑块
- 动态填充两个下拉菜单
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- 如何根据两个不同的输入动态设置链接的路径
- 如何使用角度两个绑定来动态创建的剑道网格
- 在AJAX中获取两个动态输入的值
- Three.js具有两个(切换)摄影机的动态观察控件
- 根据两个元素的重叠宽度动态设置左填充
- 如何在ng-options中添加两个索引,并使用Angular.js动态设置值
- 如果两个值都会动态变化,则用变量替换某个字符串的一部分 - Javascript
- JSOM 从所有网站的所有列表中动态获取两个公告
- 数组等于两个不同的值,并动态更改变量
- 通过选择选项(日期选择器)的两个动态表单
- 为两个不同的动态生成列表选择“全部”按钮
- 如何用span包装两个动态创建的元素
- 同时更新两个动态文本字段
- 两个动态生成的引导手风琴相互冲突
- 创建两个动态下拉菜单
- AngularJS从一个数组中计算两个动态值
- 如何包装两个动态HTML元素