我创造了一个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他在做什么!因为我正在努力学习,请随时指出它们。
感谢您花时间阅读本文以及任何帮助或代码mod。
经过一些“调整”和Bruno Fenzel的大量帮助后,代码现在可以正常运行!!