我在解析下拉列表的嵌套JSON数组时遇到问题

时间:2020-02-26 19:06:33

标签: javascript json

我有一个要解析为的JSON obj,但是第二级未访问嵌套值。

如果第一个选择器仅具有一个详细信息值,例如“人对人”或“搜索引擎”,则它不会显示第二个选择器,而是将变量设置为唯一键的值。例如,如果我选择“人对人”,那么如果我选择“无线电”,它将变量值ANS设置为“ 50000001”,出现下一个选择器,如果我选择“喜剧”,它将变量ANS设置为10000001。 >

我为此创建了一个CodePen:https://codepen.io/SimplyMarkB/pen/PoqpBEZ

let sources = [{
    "Radio" : {
        "Comedy" : "10000001",
        "News" : "10000002",
        "Music" : "10000003",
        "Talk" : "10000004",
        "Entertainment" : "10000005",
        "Religious" : "10000006"
    },
    "Direct Mail" : {
        "Direct Mail" : "30000001"
    },
    "Search Engine" : {
        "Search Engine" : "20000001"
    },
    "Person to Person" : {
        "Local Bars" : "50000001"
    }
}]

var media = "";
var ANS = "";

sources.forEach(obj => {
  Object.entries(obj).forEach(([key, value]) => {
    $("#categoryType").append("<option class='rsource' value='"+key+"'>"+key+"</option>");
  });
});

$("#categoryType").change(function(){
  $("#itemsources").show()
  var selValue = $(this).val();
  // some obj filter based on selValue and populate the select with a value & key
});

1 个答案:

答案 0 :(得分:0)

编辑更改功能。 您还可以看到更新的Codepen: https://codepen.io/harshbaba/pen/wvaJYMR

 $("#categoryType").change(function(){
   $("#itemsources").show();
   $("#itemsource").empty();
   $("#itemsource").append("<option>Select Detail</option>");
   var selValue = $(this).val();
   var data = sources[0][selValue];
   for(item in data){
    $("#itemsource").append("<option class='isource' value='"+item+"'>"+item+"   
    </option>");
   }
 });
相关问题