我有一个D3树图链接这个... https://bl.ocks.org/mbostock/4339083并且可以选择一个节点。我希望能够迭代父节点,并设置一个属性,例如d.MainBranch="Yes"
。
我的想法是我可以右键单击,弹出一个菜单,然后单击"标记为主分支"。我已右键单击以获取弹出菜单。并且可以像这样在当前节点上设置d.MainBranch="Yes"
...
function marAsMainBranch(d) {
d.mainBranch="Yes";
update(d);
}
只是缺乏迭代父母的能力:-(
有人可以帮忙吗?
答案 0 :(得分:0)
您可以执行以下操作来设置父数据并递归调用,直到没有父(从作用的节点开始):
function setInfoParent(d){
d.mainBranch="Yes";
if(d.parent){
setInfoParent(d.parent);//call recursively itself till no parent.
}
console.log(d);
}
然后点击或右键点击动作,调用setInfoParent
,如下所示:
function click(d) {
setInfoParent(d);//call to set all parents.
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update(d);
}
工作小提琴here