我在尝试在.enter()上下文中将一个圆圈和一个文本放在一个组(相同级别,而不是彼此之内)时遇到问题
var categorized = g1.selectAll("g.node").data(dataset, function(d){return d.id})
categorized
.enter()
.append("g")
.attr("id", function(d,i){return d.id;});
categorized
.enter().append("circle")
.style("fill", "#ddd");
// throws an error
categorized
.append('text')
.text(function(d,i){return d.count});
// this is working but is an update so I have to remove the text on exit
有没有办法回到父母那样的sg:
categorized
.enter()
.append("g")
.append("circle")
.getBackToParent // the g
.append("text");
答案 0 :(得分:28)
只需将父d3包装器分配给变量:
var g = categorized.enter().append("g");
g.append("circle").style("fill", "#ddd");
g.append("text").text(function(d,i){return d.count});