Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在每次从下拉列表中选择项目时使图表动态?_Javascript_Chart.js - Fatal编程技术网

Javascript 如何在每次从下拉列表中选择项目时使图表动态?

Javascript 如何在每次从下拉列表中选择项目时使图表动态?,javascript,chart.js,Javascript,Chart.js,单击下拉列表中的一个项目后,您可以看到它是动态加载的。但是,在首次加载之后,它不再加载。我的目标是让它在这里完全充满活力。你知道我怎样才能做到吗 const ctx = document.getElementById('jobChart').getContext('2d') const chart = new Chart(ctx, { type: 'line', data: { labels: ["1", "2", "3"

单击下拉列表中的一个项目后,您可以看到它是动态加载的。但是,在首次加载之后,它不再加载。我的目标是让它在这里完全充满活力。你知道我怎样才能做到吗

const ctx = document.getElementById('jobChart').getContext('2d')
const chart = new Chart(ctx, {
  type: 'line',
  data: {
    labels: ["1", "2", "3", "4", "5", "6", "7", "8", "9+"],
    datasets: []
  },
});

const jobDatasets = {
  backend: [{
    label: "10th Percentile",
    borderColor: "#c4c1ff",
    backgroundColor: "#c4c1ff",
    data: [0, 10, 5, 2, 20, 30, 45, 33, 67]
  }, {
    label: "25th Percentile",
    borderColor: "#645bff",
    backgroundColor: "#645bff",
    data: [5, 12, 14, 15, 19, 31, 55, 61, 62]
  }],
  frontend: [{
    label: "10th Percentile",
    borderColor: "#c4c1ff",
    backgroundColor: "#c4c1ff",
    data: [35, 11, 49, 45, 55, 47, 5, 62, 1]
  }, {
    label: "25th Percentile",
    borderColor: "#645bff",
    backgroundColor: "#645bff",
    data: [10, 31, 48, 49, 59, 65, 67, 76, 12]
  }],
  fullstack: [{
    label: "10th Percentile",
    borderColor: "#c4c1ff",
    backgroundColor: "#c4c1ff",
    data: [11, 37, 10, 27, 62, 52, 8, 19, 24]
  }, {
    label: "25th Percentile",
    borderColor: "#645bff",
    backgroundColor: "#645bff",
    data: [8, 25, 28, 30, 38, 45, 58, 62, 74]
  }]
}

document.getElementById('job-role').addEventListener('change', function() {
  chart.data.datasets = jobDatasets[this.value]
  chart.update()
});

你的代码看起来不错。我刚刚添加了一个空选项,它反映了图表的初始状态,其中还没有显示任何数据。因此,我在select元素上更改了事件侦听器,如下所示:

document.getElementById('job-role').addEventListener('change', function() {
  chart.data.datasets = this.value == 'none' ? [] : jobDatasets[this.value];
  chart.update();
});
请看一下你修改过的代码,看看它是如何工作的

const chart=新图表('jobChart'{
键入:“行”,
数据:{
标签:[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9+”],
数据集:[]
},
});
常量作业数据集={
后端:[{
标签:“第10百分位”,
边框颜色:“c4c1ff”,
背景色:“c4c1ff”,
数据:[0,10,5,2,20,30,45,33,67]
}, {
标签:“第25百分位”,
边框颜色:“645bff”,
背景颜色:“645bff”,
数据:[5,12,14,15,19,31,55,61,62]
}],
前端:[{
标签:“第10百分位”,
边框颜色:“c4c1ff”,
背景色:“c4c1ff”,
数据:[35,11,49,45,55,47,5,62,1]
}, {
标签:“第25百分位”,
边框颜色:“645bff”,
背景颜色:“645bff”,
数据:[10,31,48,49,59,65,67,76,12]
}],
完整堆栈:[{
标签:“第10百分位”,
边框颜色:“c4c1ff”,
背景色:“c4c1ff”,
数据:[11,37,10,27,62,52,8,19,24]
}, {
标签:“第25百分位”,
边框颜色:“645bff”,
背景颜色:“645bff”,
数据:[8,25,28,30,38,45,58,62,74]
}]
};
document.getElementById('job-role')。addEventListener('change',function(){
chart.data.datasets=this.value=='none'?[]:作业数据集[this.value];
chart.update();
});

图表类型
后台工程师
前端工程师
全堆栈工程师

您的代码看起来不错。我刚刚添加了一个空选项,它反映了图表的初始状态,其中还没有显示任何数据。因此,我在select元素上更改了事件侦听器,如下所示:

document.getElementById('job-role').addEventListener('change', function() {
  chart.data.datasets = this.value == 'none' ? [] : jobDatasets[this.value];
  chart.update();
});
请看一下你修改过的代码,看看它是如何工作的

const chart=新图表('jobChart'{
键入:“行”,
数据:{
标签:[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9+”],
数据集:[]
},
});
常量作业数据集={
后端:[{
标签:“第10百分位”,
边框颜色:“c4c1ff”,
背景色:“c4c1ff”,
数据:[0,10,5,2,20,30,45,33,67]
}, {
标签:“第25百分位”,
边框颜色:“645bff”,
背景颜色:“645bff”,
数据:[5,12,14,15,19,31,55,61,62]
}],
前端:[{
标签:“第10百分位”,
边框颜色:“c4c1ff”,
背景色:“c4c1ff”,
数据:[35,11,49,45,55,47,5,62,1]
}, {
标签:“第25百分位”,
边框颜色:“645bff”,
背景颜色:“645bff”,
数据:[10,31,48,49,59,65,67,76,12]
}],
完整堆栈:[{
标签:“第10百分位”,
边框颜色:“c4c1ff”,
背景色:“c4c1ff”,
数据:[11,37,10,27,62,52,8,19,24]
}, {
标签:“第25百分位”,
边框颜色:“645bff”,
背景颜色:“645bff”,
数据:[8,25,28,30,38,45,58,62,74]
}]
};
document.getElementById('job-role')。addEventListener('change',function(){
chart.data.datasets=this.value=='none'?[]:作业数据集[this.value];
chart.update();
});

图表类型
后台工程师
前端工程师
全堆栈工程师