2016-07-14 2 views
0

Ich habe eine HTML-Struktur wie dieseElement einfügen als Geschwister mit D3js

<div> 
    <div><span id="span1">Test 1</span></div> 
    <div><span id="span2">Test 2</span></div> 
    <div><span id="span3">Test 3</span></div> 
    <div><span id="span4">Test 4</span></div> 
</div> 

Ich habe ein svg Element einzufügen, mit jQuery ich leicht tun können, wie

for(var i in arr) 
    $('.span' + i).parent().append('<svg />') 

Wie kann ich acheive das gleiche mit D3.js? als d 3.select('.span' + i).parent ist Fehler parent is not a function

Antwort

3
var pnode = d3.select('.span' + i).node().parentNode 

geben d3.select eine Auswahl zurückgibt, verwenden Knoten(), um den tatsächlichen DOM-Knoten zurückzukehren, und dann die Eltern parentNode zu bekommen

Sie werden dann wieder müssen -wählen Sie diesen Elternknoten in einer anderen d3 Auswahl aus, um d3 Sachen dazu zu tun

PS. Für Ihr Beispiel oben muss es "#span" sein, um die Knoten nach ID auszuwählen, nicht nach ".span" (und es wäre wahrscheinlich besser, alle Knoten auf einmal auszuwählen und dann das Ergebnis statt einer Schleife), aber ich denke, das ist die Elternsache, die abgedeckt wird