d3强制图将弧附加到节点中

时间:2018-05-20 16:26:54

标签: d3.js

我试图将弧附加到图形的节点,如果我这样写,它可以工作:

var arc = d3.arc()
            .innerRadius(13)
            .outerRadius(43)
            .startAngle(0)
            .endAngle(2 * Math.PI);

var result = d3.select(".nodes")
    .append("path")
    .attr("d", arc)
    .attr("fill", "lightgrey")
    .attr("transform", "translate(" + d.x + "," + d.y + ")");

“d.x”和“d.y”实际上是我点击的节点。

但是,如果我只是使用点击的节点ID选择节点:

   var result = d3.select("name_"+d.id)
    .append("path")
    .attr("d", arc)
    .attr("fill", "lightgrey")
    .attr("transform", "translate(" + d.x + "," + d.y + ")");

它不起作用。我可以成功打印出结果:

console.log(JSON.stringify(result));

我只是想知道为什么我不能只通过id选择?感谢。

1 个答案:

答案 0 :(得分:0)

要按ID选择,您可以按以下方式进行选择:

  var output = "name_"+d.id;

  var result = d3.select("[id=" + output + "]")
    .append("path")
    .attr("d", arc)
    .attr("fill", "lightgrey")
    .attr("transform", "translate(" + d.x + "," + d.y + ")");