2016-08-14 2 views
1

Einfache Frage für jemand d3 4 Check-out: https://jsfiddle.net/dwrzso58/d3.js 4.2 erstes Element bei der Auswahl nicht verbindlich

d3.select("body") 
    .data([1,2,3]) 
    .enter() 
    .append("div") 
    .text((d,i)=>d) 

wenn dieser Code läuft nur 2 und 3 in dem DOM angezeigt. Was gibt mit dem ersten Element im Array verloren?

+0

Tormi Antwort erklärt es: Wenn Sie möchten, dass Ihre „enter“ Auswahl alle Ihre Daten haben, wählen Sie etwas, das ‚doesn t existieren. Sehen Sie sich diese Dokumentation an: http://stackoverflow.com/documentation/d3.js/2135/selections/16948/the-role-of-placeholders-in-enter-selections#t=2016081423333397609478 –

Antwort

3

d3.select("body") Auswahl enthält ein Element, das so .data() 1 an das Karosserieelement ausgewählt und fügt 2, 3 übrig bleiben und eingeschlossen in die .enter() Pipeline. Wenn Sie alle drei Elemente eingeben wollen, müssen Sie .data() auf eine leere Auswahl so nennen:

d3.select("body").select("div") 
.data([1,2,3]) 
.enter() 
.append("div") 
.text((d,i)=>d)