d3.js - d3.select(" #id).remove()或.attr(" class"," hidden")不工作

时间:2015-01-22 10:54:32

标签: javascript svg d3.js

我正在尝试删除甚至在我的javascript中设置d3 svg元素的类但是它似乎没有得到应用。

d3元素是组的一部分,如果我将id设置为单个单词,例如“区域”它会删除/修改我想要的但是整个小组。

当我追加它们时,我将所有元素的id分配给它们的特定名称。

但是,正如标题所示,d3.select不允许我修改现有元素。

以下是chrome元素视图中结构的图像。

element view

如何构造路径以及我如何操纵它们的示例代码。

// Construction
features.selectAll()
            .data(json.features)
            .enter()
            .append("path")
            .attr("class", function (e) {
                return "region " + e.properties.Name + " feature";
            })
            .attr("d", path)
            .attr("id", function(e) {
                return "region " + e.properties.Name + " feature";
            })
            .on("click", function (d) {
                qualifyType(d);
            });

// Manipulation
d3.select("#region South East feature").attr("class", "hidden");
d3.select("#region " + feature.properties.Name + " feature").remove();

我也试过了一些其他的变化,例如d3.selectAll,什么不是,但没有快乐。

1 个答案:

答案 0 :(得分:3)

D3使用CSS选择器来选择元素,并且这些类名必须以点为前缀。因此,选择ID为region且类South East feature的元素将如下所示:

d3.select("#region.South.East.feature")