2015-01-20 29 views
15

Ich habe ein Problem mit der Verwendung von jQuery zusammen mit D3js.Wie konvertiert man ein jQuery-Objekt in ein d3-Objekt?

Ich habe ein jQuery-Element namens "elem" und ich möchte einige D3js Funktionen tun.

Dieser Code funktioniert:

d3.select("body").append("svg").attr("width", 300).attr("height", 300).append("g").attr("transform", "translate(150,150)").selectAll("text").data(words).enter().append("text")...... 

Dieser Code funktioniert nicht

elem.append("svg").attr("width", 300).attr("height", 300).append("g").attr("transform", "translate(150,150)").selectAll("text").data(words).enter().append("text")...... 

So wie das jQuery-Objekt in ein D3-Objekt zu konvertieren?

+0

Ich verstehe nicht wirklich, warum diese Frage so stark abgelehnt wird. Es scheint eine vernünftige Frage zu sein. – roryok

+0

Sie können nicht von jquery in D3 konvertieren. Wählen Sie stattdessen das Element direkt mit D3. –

+0

Es ist offensichtlich möglich ... –

Antwort

26

Sie können die DOM-Elemente selbst aus dem jQuery-Objekt mit .get abrufen und dann mit d3 selector auswählen, wie Sie es mit einem DOM-Element tun würden.

d3.select($("#selection").get(0)); 
+4

Es war '.get (0)' für mich, nur für den Fall ... – weltschmerz

+0

Ich bin neu bei d3js, also brauchte ich eine Weile, um herauszufinden, dass meine Daten unten waren '.bar'' so: 'var data = d3.select (chart.get (0)). selectAll ('. bar'). data();' http://stackoverflow.com/a/16057614/ 470749 – Ryan

3

Sie können die Objekte nicht direkt konvertieren. Sie müssen das Element mit d3js erneut auswählen. d3js Selektoren arbeiten wie diese

d3.select("#mydiv") 

So einfach die id von dergleichen so jQuery Element extrahieren

d3.select("#" + elem.attr("id")).append("svg").attr("width", 300)... 

Natürlich, wenn Sie nur jQuery mit dem Element wählen, dann sollten Sie auf d3js wechseln Auswahl stattdessen.

EDIT: Ich bevorzuge Ozans Antwort oben, verwenden Sie das!

Verwandte Themen