我正在尝试使用 d3.js 构建一个具有多个嵌套下拉列表的表。当我使用较新版本的 d3 时,我的代码工作得很好,但是由于各种原因,我需要使用 d3.js v3,当我用旧版本替换新版本时,我得到以下信息:
Uncaught TypeError: options4.enter(...).append(...).merge is not a function
我假设旧版本的 d3 没有 merge() 函数,但是我不知道用什么来替代它。
这是我的代码:
<script src="https://d3js.org/d3.v3.min.js"></script>
var colorScheme = d3.scale.ordinal()
.domain(["USA", "PRI", "CAN"])
.range(["#d52922", "#d69105", "#4b7ba1"]);
var jobsCsvData = null;
d3.csv("master_info_final_v12_conversion.csv", function(data) {
data.forEach(function(d) {
d["index"] = d["index"];
d["name"] = d["name"];
d["city"] = d["city"];
d["state"] = d["state"];
d["country"] = d["country"];
});
JobsCsvData = data;
var nestedTwo = d3.nest()
.key(function(d) {
return d.country;
})
.key(function(d) {
return d.state;
})
.key(function(d) {
return d.city;
})
.entries(data);
function updateLocationValues(g) {
var filtered = filtered2[0].values.filter(function(d) {
return d.key == g;
});
var options5 = d3.select("#select5")
.selectAll("option")
.data(filtered[0].values.map(function(d) {
//.data(filtered3[0].values.map(function(d) {
return d.key;
}));
options5.exit().remove();
这是 merge() 函数给我带来的问题。
options5.enter()
.append("option")
.merge(options5)
.text(function(d) {
return d;
});
tabulate(data);
}
var options5 = d3.select("#select5")
.selectAll("option")
.data(filtered3[0].values.map(function(d) {
return d.key;
}.)).enter()
.append("option")
.text(function(d) {
return d;
});
.... {more code}
}
如果这还不够,我可以添加更多代码。任何帮助将不胜感激。
人到中年有点甜
相关分类