Javascript 使用D3或JQuery更新D3创建的屏幕

Javascript 使用D3或JQuery更新D3创建的屏幕,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我正在使用d3在屏幕上创建一些列表项,当我单击一个按钮时,我需要它再次运行,就像它第一次运行时从未发生过一样 setupgui: function() { d3.select("#SampcoISrevenues").selectAll("li") .data(function () { if($("#radio-choice-h-2a").is(":checked")) { return s

我正在使用d3在屏幕上创建一些列表项,当我单击一个按钮时,我需要它再次运行,就像它第一次运行时从未发生过一样

setupgui: function()
{
    d3.select("#SampcoISrevenues").selectAll("li")
        .data(function () {
            if($("#radio-choice-h-2a").is(":checked"))
            {
                return sampleQ1;
            }
            else if($("#radio-choice-h-2b").is(":checked"))
            {
                return sampleQ2;
            }
            else if($("#radio-choice-h-2c").is(":checked"))
            {
                return sampleQ3;
            }
            else if($("#radio-choice-h-2d").is(":checked"))
            {
                return sampleQ4;
            }
        })
        .enter()
        .append("li")
        .attr("class", function (d){return d.textcolor;})
        .text(function (d) {
            var indentvalstring = "";
            for(var i = 0; i < d.indentval; i++)
            {
                indentvalstring += "\u00a0";
            }
            indentvalstring += d.itemname;
            return indentvalstring;
        })
        .append("span")
        .attr("class", "right")
        .text(function (d){return d.numvalue;});
}
运行此操作时,它将从阵列加载数据,并根据选中的按钮将其输出。当我为一组不同的数据选择另一个按钮时,它不会做任何事情。是否有方法删除屏幕上的数据并将其替换为从按钮中选择的数据?

D3提供了.remove函数以从DOM中删除选择中的所有元素。您只需选择这些元素,然后调用函数:

d3.select("#SampcoISrevenues").selectAll("li").remove();

d3.selectSampcoISrevenues.selectAllli.removethanks,这非常有效!