Я создал Jsfiddle ЗДЕСЬ
Удерживая мышь над узлом, вы получаете 4 варианта: зеленый - добавить, красный - удалить желтый, синий - делать другие вещи - не беспокойтесь оте.
Я объясню, что это делает - когда вы нажимаете кнопку «сохранить», он проходит по каждому экземпляру дерева с помощью функции children.map.Это возвращает Parent и child, что в идеале мне нужно.
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 он делает !!Пожалуйста, не стесняйтесь указывать на них, потому что я стараюсь изо всех сил учиться.
Спасибо за ваше время, прочитав это, и за любую помощь или мод код.