依赖下拉列表中的 JSON 未定义数据



我有三个下拉菜单,分别称为平台,任务类型和组件,它们相互依赖。我已经弄清楚,直到第二个下拉菜单才能获得相关数据,但是第三个下拉菜单未定义。

请参阅下面的工作演示。

http://plnkr.co/tFZhcTm1XeqK3NoHdG4z

杰奎里

$(function() {
var platforms;
var tasktypes;
var compos;
var jsonData;

$.getJSON('tasks.json', function(result) {
jsonData = result;
$.each(result, function(i, platform) {
platforms += "<option value='" +
  platform.name +
  "'>" +
  platform.name +
  "</option>";
});
$('#platform').html(platforms);
}); 
$("#platform").change(function (){
var idx = $("#platform").prop('selectedIndex');
var platforms = jsonData[idx].task;
tasktypes = "";
for (i = 0; i < platforms.length; i++) {
  tasktypes += "<option value='" +
    platforms[i].taskname +
    "'>" +
    platforms[i].taskname +
    "</option>";
};
$('#taskname').html(tasktypes);
});

$("#taskname").change(function (){
var idc = $("#taskname").prop('selectedIndex');
var tasktypes = jsonData[idc].task;
compos = "";
for (i = 0; i < tasktypes.length; i++) {
  compos += "<option value='" +
    tasktypes[i].componentname +
    "'>" +
    tasktypes[i].componentname +
    "</option>";
};
$('#components').html(compos);
});  
});

我想在选择平台和任务类型后获取相关的组件名称。

   $("#taskname").change(function (){
    var idc = $("#taskname").prop('selectedIndex');
    var tasktypes = jsonData[idc].task;
console.log(tasktypes); // include and see what is coming over here in console 
    compos = "";
    for (i = 0; i < tasktypes.length; i++) {
console.log(tasktypes[i]); // include and see what is coming over here in console  
      compos += "<option value='" +
        tasktypes[i].componentname +
        "'>" +
        tasktypes[i].componentname +
        "</option>";
    };
    $('#components').html(compos);
    });  
    }); 

某处缺少某些数据或脚本不了解即将发生的事情,我相信会发生什么

最新更新