你如何有条件地删除d3元素?

时间:2015-03-20 17:11:03

标签: javascript html d3.js

我有一张图表。我加载了一个我解析的文件,以获取我需要对图形进行的更改。有关更改的信息以节点名称的形式出现,节点名称存储在每个节点的文本字段中。

如何根据文本字段的内容选择节点,以便我可以将其删除?

我要删除的节点的HTML如下所示。

<circle style="fill: rgb(204, 204, 204);" r="8"></circle><text dy=".35em" x="12">d1</text>

2 个答案:

答案 0 :(得分:0)

1)您可以将元素的类设置为(也)是您在设置文本内容时的文本内容。然后你可以按班选择。

2)如果你可以为这个元素应用一个选择器,你可以得到一个元素的文本内容:

selection.text()

另请参阅:https://github.com/mbostock/d3/wiki/Selections#text

3)在大多数情况下,您可以使用某些数据动态设置文本。如果数据绑定到元素,则将使用标准回调函数

selection.filter( function (d,i) {...// filter based on d }).remove();

答案 1 :(得分:0)

这使得您的文本节点在我想要删除的圆节点之外变得很难。但如果不是,你可以这样做:

d3.selectAll('circle>text').filter(function(d){
    return d3.select(this).text() ==="d1";
}).remove()