我使用d3.js力布局,我可以点击一个startnode和一个尾注,下面的代码高亮显示所有节点。该代码绑定层次结构中的JSON文件。
我的下一个想法是,显示一个文本,清楚地说明哪些节点以正确的顺序突出显示。 这意味着:
"first node:" name of the first node ,
"second node:" name of the second node,
"third node:" name of the third node,
.....
"end node:" name of the end node
但此时,我只能显示我直接点击的节点的名称(d.data.name)。 startNode.path(d)是一个函数,它返回“startNode”和“d”的最短路径。 在点击任何内容之前,它总是显示文本:“first node:null”。我的问题是:如何才能访问起始节点和结束节点之间的节点?
var startNode = null;
var node = svg.append("g")
.
.
.
.on("click", function(d, i)
{
var path1 = startNode && startNode.path(d) || [];
startNode = d;
node.attr("r", function(d)
{
return path1.includes(d) || startNode == d ? 8 : 3;
});
textNode.text("first node: " + d.data.name);
})
var textNode = svg.append("text")
.attr("dx", 112)
.attr("dy", 490)
.text("first node: " + startNode)