Jquery 基本d3js数据更新
请看以下内容。 当您单击按钮时,它会更新数据。我不明白的一件事是在draw()函数中执行Jquery 基本d3js数据更新,jquery,d3.js,Jquery,D3.js,请看以下内容。 当您单击按钮时,它会更新数据。我不明白的一件事是在draw()函数中执行bar.exit().remove() function draw(data) { var scale = d3.scale.linear() .domain([0, 50]) .range([0, 100]); var bars = d3.select("#work_queues_chart") .selectAll("div")
bar.exit().remove()
function draw(data) {
var scale = d3.scale.linear()
.domain([0, 50])
.range([0, 100]);
var bars = d3.select("#work_queues_chart")
.selectAll("div")
.attr("id","work_queues_chart")
.data(data);
// enter selection
bars
.enter().append("div");
// update selection
bars
.style("width", function (d) {return scale(d) + "%";})
.text(function (d) {return d;});
// exit selection
bars
.exit().remove();
};
它是否删除了输入新数据之前的旧数据?如果是这样,是否应该在设置条形图之前调用它。数据(数据)?任何启示都将不胜感激
更新:
function draw(data) {
var bars = d3.select("body")
.selectAll("div")
.data(data);
var charts = bars
.enter().append("div")
.attr("class", "bar")
charts
.selectAll("button")
.append("button")
.text(function (d) {
console.log(d)
return d.name; })
.attr("class", "my-button")
bars
.style("width", function (d) {return d.val*10 + "px";})
.text(function (d) {
return d.name; });
bars
.exit().remove();
};
我让更新部分工作,但现在按钮没有正确附加。我附加按钮的方式有什么问题吗?在您的情况下,
条。exit()。remove()
什么都不做。但是如果更新的数据是一个少于6个元素(比如4个元素)的数组,那么bar.exit()
将返回2个没有相应数据的DOM节点的选择,而.remove()
将删除它们。在这种情况下,这就是您想要的。这是有道理的!那么如何更新现有数组的值?比如说,初始数组有[1,2,3,4,5],我希望它有[4,4,4,4,4]并用图形表示。你已经有了,不是吗?它由您标记为//更新选择
的块处理。您能看一下我更新的代码,看看我在为每个条形图添加按钮元素时有什么错误吗?取出行。选择全部(“按钮”)