情景
我有一个用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']
问题
如何从过滤节点获取与单选节点相同的数据?
答案 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();