D3.js 标签强制布局d3 js

D3.js 标签强制布局d3 js,d3.js,force-layout,D3.js,Force Layout,我在force布局中将文本附加到gnodes,如下所示 var gnodes = svg.selectAll('g.gnode') .data(graph.nodes) .enter() .append('g') .classed('gnode', true); var labels = gnodes.append("text") .attr("dx", 5) .attr("dy", 5) .attr("font-size","1.5em") .text(""); 我想做的是遍历所有GNOD

我在force布局中将文本附加到gnodes,如下所示

var gnodes = svg.selectAll('g.gnode')
.data(graph.nodes)
.enter()
.append('g')
.classed('gnode', true);

var labels = gnodes.append("text")
.attr("dx", 5)
.attr("dy", 5)
.attr("font-size","1.5em")
.text("");
我想做的是遍历所有GNODE,并有选择地(基于node.index)更改一些相应标签的文本。我不知道我该怎么做

labels.text("text", function(d) {
    console.log("gnode Object d is " + d);
    return "a function for this text";
});

这不管用。我非常感谢你的帮助。对于那些想要完整代码的人,请看这里。

它是
.text(函数(d){…})
,而不是
.text(“text”,…)
@larskothoff,谢谢!我得到了在控制台上显示内容的标签,但由于某种原因,文本显示在窗口的左上角,而不是节点附近。你知道为什么吗?我再给你推荐一次。我明白了,原来我是在更新节点(圆),而不是勾号函数中的gnode,修复了标签,尽管我不确定确切的原因。无论如何谢谢你!