Javascript D3。如何对选定节点和所有父节点执行操作
我有一个D3树形图链接这一个。。。并且可以选择一个节点进行微调。我希望能够在父节点上进行迭代,并设置一个属性,例如Javascript D3。如何对选定节点和所有父节点执行操作,javascript,d3.js,Javascript,D3.js,我有一个D3树形图链接这一个。。。并且可以选择一个节点进行微调。我希望能够在父节点上进行迭代,并设置一个属性,例如d.MainBranch=“Yes”。 我的想法是我可以右键点击,得到一个菜单弹出,然后点击“标记为主要分支”。我已经做了右键点击得到一个弹出菜单。并且可以像这样在当前节点上设置d.MainBranch=“Yes” function marAsMainBranch(d) { d.mainBranch="Yes"; update(d); } 只
d.MainBranch=“Yes”
。
我的想法是我可以右键点击,得到一个菜单弹出,然后点击“标记为主要分支”。我已经做了右键点击得到一个弹出菜单。并且可以像这样在当前节点上设置d.MainBranch=“Yes”
function marAsMainBranch(d) {
d.mainBranch="Yes";
update(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);
}
Working fiddle您可以这样做来设置父数据并递归调用,直到没有父数据为止(从操作的节点开始): 然后在中单击或右键单击操作调用
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);
}
fiddle工作问题是数据()有子引用,没有父引用。我认为最好从树的顶部开始,递归地向下迭代,直到找到已单击的节点,然后在备份过程中标记所有父引用。问题是数据()有子引用,没有父引用。我认为最好从树的顶部开始,递归地向下迭代,直到找到已单击的节点,然后在备份过程中标记所有父引用。