我正在尝试访问下拉菜单的所有品牌和值 但我不能用这种方式。
<select id="secim">
</select>
var data = [
{
"products": "Cars",
"brands_values" : [
{"brand":"fiat","value":1},
{"brand":"bmw","value":2}
]
}
];
$.each(data, function(i, item) {
$('#secim').append($('<option>', {
value: item.brands_values.value,
text: item.brands_values.brand
}));
});
我该怎么办?谢谢
最佳答案
只需为品牌添加另一个循环:
var data = [
{
"products": "Cars",
"brands_values" : [
{"brand":"fiat","value":1},
{"brand":"bmw","value":2}
]
}];
$.each(data, function(i, item) {
if (item.brands_values) {
item.brands_values.forEach(brands => {
$('#secim').append($('<option>', {
value: brands.value,
text: brands.brand
}));
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="secim">
</select>
注意:在这种情况下,您可能希望使用 native .forEach
,因为它就足够了。我在过去遇到过 jQuery.each()
的性能问题,所以我尽可能避免它(check this):
data.forEach(item => {
if (item.brands_values) {
item.brands_values.forEach(brands => {
$('#secim').append($('<option>', {
value: brands.value,
text: brands.brand
}));
});
}
});
关于javascript - 如何使用 jquery 访问 JSON 嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45733714/