如何在jQuery foreach循环中使用if条件

时间:2016-04-23 13:05:53

标签: jquery json

我有一个带有一些细节的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>

1 个答案:

答案 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"}]';