D3按数据选择特定节点

时间:2018-03-13 16:56:35

标签: d3.js

情景

我有一个用4个节点绘制的D3树。我想通过其数据选择一个节点 - > uuid

当前解决方案

console.log(
  Object.keys(d3.selectAll('.node-circle').filter(d => d.data.id == '55ac64b257c14bbf9d7525cf0b095f60'))
)
console.log(Object.keys(d3.select('.node-circle').datum()))

第二个console.log返回['data', 'height', 'depth', 'parent', 'x', 'y', 'id', 'x0', 'y0'],第一个返回['_groups', '_parents']

问题

如何从过滤节点获取与单选节点相同的数据?

2 个答案:

答案 0 :(得分:1)

当然它只是将你拥有的两种方法结合起来,将节点过滤到你想要的id,然后返回它的数据?

var yourAnswer = d3.selectAll(".node-circle")
    .filter(function(d) { 
        return d.data.id == '55ac64b257c14bbf9d7525cf0b095f60';
    })
    .datum()
;

答案 1 :(得分:-2)

关闭@mgraham建议的内容。 According to the docs,你也可以这样做。将仅从符合布尔值的选择中获取数据。



var selectionData = d3.selectAll(".node-circle")
  .select(function(d, i) { return d.data.id == '55ac64b257c14bbf9d7525cf0b095f60' ? this : null; }).datum();