【问题标题】:Populating drop down with json object使用 json 对象填充下拉列表
【发布时间】:2013-08-28 09:58:24
【问题描述】:

我已经设法用一个 json 对象填充我的下拉菜单,效果很好。 目前,我正在尝试根据从下拉列表中选择的选项显示隐藏 div 中的图像。由于下拉列表由 json 对象填充,我将如何检索图像数据。

HTML

<form>
    <fieldset id="autoHeight">
        <legend>pod</legend>
        <h2>Cars</h2>
        <select name="drop_down" id="dropDownCars">
            <option value="None" selected="Selected">Select type</option>
        </select>
    </fieldset>
</form>
<div id="showBmw" class="hidden">
    <a href="http://cdn.iphoneincanada.ca/wp-content/uploads/2012/08/white-bmw.jpg"></a>
</div>

JSON 文件

{
    Cars: [{
        "CarType": "BMW",
        "carID": "bmw123"
    }, {
        "CarType": "mercedes",
        "carID": "merc123"
    }, {
        "CarType": "volvo",
        "carID": "vol123r"
    }, {
        "CarType": "ford",
        "carID": "ford123"
    }]
}

这就是我使用 jquery 填充下拉菜单的方式。

$(document).ready(function() {
    $.getJSON("../cars.json", function(obj) {
        $.each(obj.cars, function(key, value) {
            $("#dropDownCars").append("<option>" + value.carsName + "</option>");
        });
    });
});

jfiddle 中的任何工作示例,将不胜感激!谢谢。

【问题讨论】:

  • 小提琴或发布您的 HTML 也会有所帮助。
  • 向选项添加一个值属性,向下拉框添加一个更改处理程序,该处理程序读取当前活动 ID 并相应地设置图像的 src。对于 30 个错误,我会做你的工作 ;-)

标签: jquery json drop-down-menu


【解决方案1】:

试试这段代码....jsfiddle 它解释了根据所选下拉 ID 将代码放置在何处以选择图像

HTML代码

 <select id="dropDownDest">
</select>

jQuery document.ready 代码

 var a = {
            Cars: [{
                "CarType": "BMW",
                "carID": "bmw123"
            }, {
                "CarType": "mercedes",
                "carID": "merc123"
            }, {
                "CarType": "volvo",
                "carID": "vol123r"
            }, {
                "CarType": "ford",
                "carID": "ford123"
            }]
        };
        $.each(a.Cars, function (key, value) {
            $("#dropDownDest").append($('<option></option>').val(value.carID).html(value.CarType));
        });

        $('#dropDownDest').change(function () {
            alert($(this).val());
            //Code to select image based on selected car id
        });

【讨论】:

  • 刚刚看到这条评论,这也能起到作用。谢谢@iblue
【解决方案2】:
$('#dropDownDest').on('change', function() {
    if ($(this).val() == 'vol123r') {
        $('#imghide').removeClass('hide');
    } else {
        $('#imghide').addClass('hide');
    }
});

FIDDLE DEMO

【讨论】:

    【解决方案3】:

    Demo

    试试这个代码..

    var obj={
    Cars: [
         {
          "CarType": "BMW",
          "carID": "bmw123"
          },
           {
          "CarType": "mercedes",
          "carID": "merc123"
           },
           {
          "CarType": "volvo",
          "carID": "vol123r"
            },
            {
          "CarType": "ford",
          "carID": "ford123"
            }
       ]
    };
    
    for(var i=0;i<obj.Cars.length;i++)
    {
        var option=$('<option></option>').text(obj.Cars[i]['CarType']);
      $('select').append(option);
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 2011-05-28
      • 2015-08-24
      相关资源
      最近更新 更多