在d3树形图中获取父节点到给定节点

时间:2017-10-20 08:59:36

标签: javascript d3.js

我是javascript / flask的初学者,我正在尝试使用这个d3树形图示例:https://bl.ocks.org/mbostock/4063570

我想要的是,当点击一个节点时,将父节点返回到烧瓶应用服务器。

例如:如果我点击display节点,则服务器获取“flare,display

如果单击cluster节点,则服务器获取“flare,analytics,cluster

2 个答案:

答案 0 :(得分:2)

获取被点击节点的父母非常简单。只需使用ancestors(),即:

  

返回祖先节点的数组,从该节点开始,然后是每个父节点,直到根节点。

所以,在你的情况下......

node.on("click", function(d){
    console.log(d.ancestors())
});

..将以控制台的形式显示控制台中的所有祖先。

这是分叉的bl.ocks:https://bl.ocks.org/anonymous/e36d4af364642a70818987941aa192c8/c75e620e662a6899d8df34c287fc5ea00d049513

在该代码中,我将映射数组以获取每个节点的id属性。

答案 1 :(得分:1)

您可以对点击的数据进行递归:

  if (t>1 && t1<temp->left->a);
  return right(temp);
  if (t1<-1 && t1>temp->right->a);
  return left(temp);
  if (t<-1 && t1<temp->right->a);
  return rl(temp);
  if (t>1 && t1>temp->left->a);
  return lr(temp);

工作示例here