我有一个带有一些细节的json字符串,我想根据if条件从json字符串中获取值但是有些错误我没有得到价值。
什么是我想做的有两种车型 4座和 8座在下拉当我更改车型然后我想要所有车辆名称来自json字符串在下一个下拉选项中那是汽车。我试过下面的代码,但没有显示任何选项。我不知道该怎么做。
<script src="jquery-1.12.0.js"></script>
<body>
<select id="capacity">
<option value="">Select</option>
<option value="4Seater">4Seater</option>
<option value="8Seater">8Seater</option>
</select>
<select id="cars"></select>
<script type="text/javascript">
$(document).ready(function(){
var jsonstirn = '[{"capacity":"4Seater","carname":"car1","price":"83"},{"capacity":"4Seater","car2":"i10","price":"83"},{"capacity":"8Seater","carname":"car3","price":"83"}]';
var jsonarray = JSON.parse(jsonstirn);
$('#capacity').change(function(){
var cars = ''
var capacityval = $('#capacity').val();
$.each(jsonarray,function(i,item){
if(item.capacity == capacityval){
cars+='<option value="'+item.carname+'">'+item.carname+'</option>';
};
});
$('#cars').html(cars);
});
});
</script>
</body>
答案 0 :(得分:3)
item.capacity存在拼写错误,您使用了item.capcity而不是capacity,请使用:
$.each(jsonarray,function(i,item){
if(item.capacity == capacityval){
cars+='<option value="'+item.carname+'">'+item.carname+'</option>';
};
});
// set json :
var jsonstirn = '[{"capacity":"4Seater","carname":"car1","price":"83"},{"capacity":"4Seater","carname":"i10","price":"83"},{"capacity":"8Seater","carname":"car3","price":"83"}]';