Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
Jquery 基本d3js数据更新_Jquery_D3.js - Fatal编程技术网

Jquery 基本d3js数据更新

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")

请看以下内容。 当您单击按钮时,它会更新数据。我不明白的一件事是在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")
        .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]并用图形表示。你已经有了,不是吗?它由您标记为
//更新选择
的块处理。您能看一下我更新的代码,看看我在为每个条形图添加按钮元素时有什么错误吗?取出行
。选择全部(“按钮”)