这是this question的后续行动。 (谢谢西里尔的所有帮助!)
我的问题变得有点诡计,我仍然需要一些帮助。 当用户点击任何节点的文本元素时,我希望发生以下情况:
我已将parent
项添加到Object中,代表Cyril推荐的collapse()
中的数据。所以我可以遍历到root的路径。然而,当我遍历这条路径时,我无法掌握文本的d3.js元素。我怎样才能做到这一点?一旦我这样做,上述操作对我来说将相对简单。
以下是我想要的示例。当用户点击Visualizations
时,viz
和flare
应该变为vizX
和flareX
。他们的样式类应该从class1
切换到class2
。点击vizX
和flareX
文字应无效。 并且不应以任何方式更新其他节点。
我该怎么办?当我遍历树时,我需要能够抓取d3.js绘图元素。
答案 0 :(得分:1)
当您从单击的节点遍历到父根。
您还可以获取数据的DOM元素(具有圆圈和文本的组),如下面的函数所示。
function findNode(text){
var DOM = d3.selectAll(".node")[0].find(function(node){
return (d3.select(node).data()[0].name == text);
})
return DOM;
}
所以,现在当你拥有数据时,你想要找到它所关联的组。
您可以使用上述功能并致电。
var k = findNode("physics");//this will return the DOM which has the node physics.
希望这有帮助!