2012-09-01 4 views
14

Ich habe ein Problem versucht, einen Kreis und einen Text innerhalb einer Gruppe (gleicher Ebene, nicht ineinander) im .enter() Kontext zu setzenD3js Anfügen von 2 Kindern auf dem gleichen Niveau in .enter Kontext

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 

gibt es eine Möglichkeit, um die Eltern zu kommen, sg wie folgt aus:

categorized 
.enter() 
.append("g") 
.append("circle") 
.getBackToParent // the g 
.append("text"); 

Antwort

24

einfach die Eltern d3 Wrapper einer variablen zuweisen:

var g = categorized.enter().append("g"); 
g.append("circle").style("fill", "#ddd"); 
g.append("text").text(function(d,i){return d.count}); 
+0

Danke. Es funktionierte. Ich hatte früher ein Datenbindungsproblem und obwohl das Verwenden einer Variablen mit dem Enter-Kontext ein Teil des Problems war, ist es das nicht. – mikpouet

+0

Dies ist sehr nützlich in 'svg'. Aber was ist mit 'html', zum Beispiel um'

'und'
'Tags zu alternieren? –

+0

@leonardvertighel: Nicht sicher, was Sie meinen, möchten Sie vielleicht eine neue Frage stellen. –

Verwandte Themen