D3.js 使用D3按属性筛选

D3.js 使用D3按属性筛选,d3.js,D3.js,我找不到一个(希望是)非常简单的问题的答案。我在这个弦图示例中使用过滤: 我现在需要的是只过滤那些带有橙色填充的连接。有类似的吗 .filter(style('fill') == 'orange') 这样行吗?非常感谢您的建议。要使用fill=orange搜索所有内容,您可以执行以下操作: svg.selectAll('path[style = "fill: orange;"]') svg.selectAll('rect[style = "fill: orange;"]') 如果要将搜索限

我找不到一个(希望是)非常简单的问题的答案。我在这个弦图示例中使用过滤:

我现在需要的是只过滤那些带有橙色填充的连接。有类似的吗

.filter(style('fill') == 'orange')

这样行吗?非常感谢您的建议。

要使用fill=orange搜索所有内容,您可以执行以下操作:

svg.selectAll('path[style = "fill: orange;"]')
svg.selectAll('rect[style = "fill: orange;"]')
如果要将搜索限制为特定的元素类型,例如“rect”,可以执行以下操作:

svg.selectAll('path[style = "fill: orange;"]')
svg.selectAll('rect[style = "fill: orange;"]')

类似于:
.filter(函数(d){return d3.select(this).style('fill')=='orange'})
?您也可以使用选择器直接执行此操作,例如,
d3.selectAll(“path[fill=orange]”)
。然后在mdml的答案上使用if-then-else方法。您可能还希望与.filter()之外的值竞争以获得更好的组织。对于更复杂的谓词,例如id以“fromLondon-”开头的“g”,它会选择id可能为“fromLondon toNewYork”、“fromLondon toParis”的g节点,情况如何?