我在这里使用d3树示例处理决策树:Search collapse tree。在此示例中,用户可以搜索节点,并且将突出显示从根到所选节点的路径。但就我而言,当用户输入连接到输出节点的节点时,应突出显示从根节点到输出节点的路径。就像图片中所示:
我需要像图片中所示的那样处理树,但我的逻辑似乎不起作用。请查看我的FIDDLE。为了获得outputh路径,我添加了一个名为" searchPath"的方法。适用于点击功能"查找输出路径"按钮。 (在小提琴中,点击功能不起作用,不知道为什么。在普通的html页面中它起作用):
function searchPath(){
var searchText = $("#newpath").val();
//alert(searchText)
var textspl = searchText.split(",");
var path="";
for(var i=0;i<textspl.length;i++){
var paths= searchTree(treejson2,textspl[i],[]);
fullpath.push(paths[Object.keys(paths).length-1]);
}
console.log("finally : ");
console.log(fullpath);
d3.selectAll("circle").filter(function(d) {
console.log("circle name "+d.name);
});
//return fullpath;
}
要根据路径选择圈子和链接元素,我添加了&#34; id&#34;属性到那些元素。对于circle,我给id作为d.name,对于链接我给id为d.source.name +&#34;:&#34; + d.target.name&#34;,以便轻松识别源节点和特定链接的目标节点。
但现在我仍然坚持使用代码,我没有任何想法或逻辑可以继续前进。