javascript - 带 Json 数据的下拉框

标签 javascript jquery html json drop-down-menu

我正在尝试使用 jquery 使用以下 JSON 数据填充下拉框

    {
     "Name":["A","B","C"],
     "Movie":["X","Y","Z"]
    }

这是我到目前为止所做的脚本

   $("#firstbox").change(function(){
    var $selection=$(this);

   $.getJSON("data.json",function(data){
    var i=$selection.val();
    var arr=[];

    switch(i){
        case 'Name':
            arr=data.Name.split(",");
            break;
        case 'Movie':
            arr=data.Movie.split(",");
            break;
    }       

    });

    });

我的基本index.html就是这样

   <select id="firstbox">
            <option selected value="">---Select---</option> 
            <option value="Name">Name</option>
            <option value="Movie">Movie</option>
   </select>

   <select id="secondbox" name="">
            <option selected value="">---Generate---</option>
            <script src="myjs.js"> </script>
   </select>

“secondbox”下拉列表应生成与“firstbox”下拉列表的选择相对应的值。我收到的错误是“未定义的分割函数”。谁能给我提示吗?

谢谢

最佳答案

splitString 对象的一个​​方法,这里您在 Array 对象上使用它。 您不需要拆分,因为 Name 和 Movie 键都是 JSON 对象中的现成数组。

$("#firstbox").on("change", function(e){
    var sel=$(this).val(); 
    $("#secondbox").empty();
    $.getJSON("data.json",function(data){
        var values=data[sel] || ['Error : key not found'];
        $(values).each(function(index,element) {
             $("<option />", {value: element, text:element}).appendTo("#secondbox"); 
         });
    });
 });

这是一个工作示例:http://jsfiddle.net/cKBeE/

关于javascript - 带 Json 数据的下拉框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22007411/

相关文章:

javascript - jQuery 通过 ID 引用外部模板脚本

javascript - Vue : How to pass multiple Props with a loop

javascript - 对于输入类型 ="number"如何将默认值设置为 0

javascript - JQuery 根据输入值动态改变值

javascript - Bootstrap Multistep Form在返回时被破坏

javascript - Angular CSS ngRepeat 在 li 之间使用分隔符

javascript - 为什么 Firefox DevTools 的调试器显示 'loadSourceError' ?

javascript - 如何在 C# 中编写 jQuery

jQuery 自动完成扩展以占据整个屏幕

html - 如何使用百分比设置表格单元格的最大宽度?