我试图将弧附加到图形的节点,如果我这样写,它可以工作:
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选择?感谢。
答案 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 + ")");