我已经创建了一个Jsfiddle HERE
将鼠标悬停在节点上会为您提供4个选项,绿色-添加,红色-删除黄色和蓝色可做其他事情-不用担心这些。
我将解释其作用-当您按下“保存”按钮时,它将使用children.map函数逐步遍历树的每个实例。这将返回父母和孩子,这正是我理想中的需要。
var onClick = function() {
d3.selectAll('g.node')
.each(function(p){
p.children.map(function(c) {
alert( c.name +"("+ c.id+")"+ "- PARENT TO -" + p.name + "(" + p.id +")"
)
});
});
};
如果我将其更改为:
d3.selectAll('g.node')
.each(function(p){
alert( p.name )
});
它将遍历所有名称,但是无论调用地图如何,我都无法获取父母和孩子的详细信息。
这并不总是有效,它的命中和错过-如果您添加几个很快就会看到的节点,这是我无法解决的问题。
我知道代码可以清理,我敢肯定,您会坐在那里,认为WTF在做什么!!在我尽力学习的过程中,请随时向他们指出。
感谢您的阅读时间以及任何帮助或代码修改。