d3.js(树布局) - 获取父节点 - 奇怪的行为

时间:2014-03-13 09:07:08

标签: javascript d3.js tree

我在一个我无法理解的问题上阻止了几个小时。

我有一个树形布局,如果一个节点有子节点并且有一个"子组件"属性,我想得到父节点。事实上,如果节点尊重我的两个条件,我想将它的孩子重新附加到他的父母身上并自行删除。

如果我有这个计划:

A --> B (subcomponent) --> C
                       --> D

我希望它呈现如下:

A --> C
  --> D

要意识到这一点,我要重新定义子访问者(tree.children),如果节点尊重我的两个条件,它应该将他的孩子转移到他的父母并移除他自己。为此,我将访问节点设为父节点。

tree.children(function children(d) {
    if("children" in d && "subcomponent" in d) {
        console.log(d);
    }

    return d.children;
});

日志记录语句显示:http://cl.ly/image/3t1n2O1u3U0n所以看起来父字段存在,但我只能访问" name"," subcomponent"和#34;孩子"键。小时和小时我尝试访问父字段,因为它包含我需要的所有数据(例如parent.children字段..)

以下是一个工作示例:http://jsfiddle.net/LzqNK/1/背叛线靠近29-30,其中d是"服务A.1节点"我可以在哪里访问"服务A"节点,因为它是它的父节点。一旦我成为父节点,我的整个算法就可以在我的本地计算机上完成。

谢谢大家。

0 个答案:

没有答案