Javascript D3.追加(“文本”)

Javascript D3.追加(“文本”),javascript,d3.js,Javascript,D3.js,我试图弄清楚.append(“text”)是如何工作的。我可以将文本元素附加到节点,将不同的文本元素附加到链接吗?例如,通过d3.selectAll(“圆圈”).append(“文本”)和以后的d3.selectAll(“行”).append(“文本”)?这应该行得通 现在,让我们假设我想用不同的数据“填充”圆的文本,作为从线的填充。我问这个问题,因为对我来说,它看起来像.append(“text”)适用于所有元素,但如果我想用数据填充它,我不能从不同的数据源中选择。Icoded,您只需要将.l

我试图弄清楚
.append(“text”)
是如何工作的。我可以将文本元素附加到节点,将不同的文本元素附加到链接吗?例如,通过d3.selectAll(“圆圈”).append(“文本”)和以后的d3.selectAll(“行”).append(“文本”)?这应该行得通


现在,让我们假设我想用不同的数据“填充”圆的文本,作为从线的填充。我问这个问题,因为对我来说,它看起来像.append(“text”)适用于所有元素,但如果我想用数据填充它,我不能从不同的数据源中选择。

Icoded,您只需要将.link类添加到您的选择中:

        var icons = svg.selectAll("text.link")
            .data(data_nodes)
            .enter()
            .append("text")
            .attr("class", "icon")
            .attr("text-anchor", "middle")
            .attr("dominant-baseline", "central")
            .style("font-family", "FontAwesome")
            .style("font-size", "30px")
            .text(function (d) { return d.icon; })
            .call(d3.drag()
                .on("start", dragStarted)
                .on("drag", dragged)
                .on("end", dragEnded)
            )

不能将子文本元素附加到圆元素。但是,您可以将这两者附加到父级
g
。不要在开始时附加圆圈,而是附加一个
g
,然后附加圆圈和文本,例如:
g.append(“圆圈”)
g.append(“text”)…
。对于线,文本元素不能附加到形状,这是无效的SVG。请尝试或获取有关强制布局上下文中的圆和文本的更多信息。