d3更改加载的ajax数据
我已经从ajax加载了数据:d3更改加载的ajax数据,ajax,d3.js,Ajax,D3.js,我已经从ajax加载了数据: if (page == 1) { var n = date.toISOString(); $.ajax({ url: route, type: 'POST', data: JSON.stringify({ "year": n }), dataType: "json", contentType: "applica
if (page == 1) {
var n = date.toISOString();
$.ajax({
url: route,
type: 'POST',
data: JSON.stringify({ "year": n }),
dataType: "json",
contentType: "application/json",
success: function (result) {
var data = JSON.parse(result);
console.log(data);
draw(data);
}
});
我希望draw(data)函数根据从范围滑块中选择的年份绘制条形图。但问题是,我还需要一个条件:
var date;
var val = document.getElementById("year");
switch (val) {
case '2015': date = new Date("July 21, 2015"); break;
case '2016': date = new Date("July 21, 2016"); break;
case "2017": date = new Date("July 21, 2017"); break;
case '2019': date = new Date("July 21, 2019"); break;
default: date = new Date("July 21, 2018"); break;
}
根据选择的日期,它应该发布不同的日期。以下是html范围代码:
<input type="range" min=2015 max=2019 step=1 id="year" value=2018 oninput="selected_year.value = year.value">
<output name="selected_year" id="selected_year">2018</output>
2018
它只加载“默认”值,即2018。
那么,如何让我的条形图根据从范围中选择的年份更改加载的数据?我到底做错了什么?将DOM元素()与年份(而不是其值)进行比较。更改为switch(val.value){@ee2Dev,谢谢,我这样做了,但仍然没有结果。似乎您将值(一个数字)与字符串进行了比较。尝试删除case语句中的括号:case 2015:…引号我的意思是-非括号您将DOM元素()与年份(而非其值)进行了比较。更改为switch(val.value){@ee2Dev,谢谢,我做了,但仍然没有结果。似乎您将值(数字)与字符串进行比较。尝试删除case语句中的括号:case 2015:…我的意思是引号-不是括号