Ho un problema con l'inserimento di nuovi fratelli su elementi esistenti.d3.js - come inserire nuovi elementi di pari livello
ho questa struttura
<svg>
<g>
<path class="data"></path>
<path class="data"></path>
</g>
</svg>
e voglio questo struttura
<svg>
<g>
<path class="data"></path>
<text></text>
<path class="data"></path>
<text></text>
</g>
</svg>
ma se uso le d3.js funzione di inserimento
d3.select("g").insert("text", "path.data");
ottengo il seguente (nonostante la selezione per nome della classe)
<svg>
<g>
<text></text>
<path class="data"></path>
<path class="data"></path>
</g>
</svg>
qualche idea?
Grazie Matt. Questo fa quello che voglio. Questa è probabilmente la soluzione migliore in ogni caso, poiché la funzione di inserimento di d3.js supporta solo le costanti come selettori (al momento). Quindi non puoi usare "this.nextSibling" come selettore. In un mondo ideale, la funzione d3.js corrispondente dovrebbe assomigliare a questa: d3.select (this.parentNode) .insert ("text", this); – Codetoffel
L'aggiunta di nuovi elementi con '.each' e' document.createElement 'aggiunge il nodo al documento, ma viene rimosso dalla visualizzazione per qualche motivo. Presumibilmente, è possibile usare d3's 'insert() per farlo, ma il selettore" before "passato a' insert() 'selezionerà solo un singolo elemento. –