2015-01-20 15 views
15

मुझे D3js के साथ jQuery का उपयोग करने में समस्या है।एक jQuery ऑब्जेक्ट को d3 ऑब्जेक्ट में कैसे परिवर्तित करें?

मेरे पास "elem" नामक एक jQuery तत्व है और मैं कुछ D3js फ़ंक्शन करना चाहता हूं।

इस कोड काम करता है:

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")...... 

इस कोड

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

तो कैसे एक डी 3 वस्तु में jQuery वस्तु कन्वर्ट करने के लिए नहीं करता है?

+0

मुझे वास्तव में समझ में नहीं आता कि यह सवाल इतनी भारी क्यों हो रहा है। यह एक उचित सवाल की तरह लगता है। – roryok

+0

आप jquery से D3 में कनवर्ट नहीं कर सकते हैं। इसके बजाय सीधे डी 3 के साथ तत्व का चयन करें। –

+0

यह संभव है ... –

उत्तर

26

आप .get का उपयोग कर स्वयं को jQuery ऑब्जेक्ट से डोम एलिमेंट्स प्राप्त कर सकते हैं और फिर उन्हें डी 3 चयनकर्ता के साथ चुन सकते हैं जैसे कि आप कोई डोम एलिमेंट करेंगे।

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

यह मेरे लिए '.get (0)' था, बस मामले में ... – weltschmerz

+0

मैं d3js के लिए नया हूं, इसलिए मुझे यह पता लगाने में थोड़ी देर लग गई कि मेरा डेटा नीचे था ''bar'' इस तरह:' var data = d3.select (chart.get (0))। selectAll ('bar')। डेटा(); 'http://stackoverflow.com/a/16057614/ 470,749 – Ryan

3

आप वस्तुओं को सीधे रूपांतरित नहीं कर सकते हैं। आपको d3js का उपयोग कर तत्व को फिर से चुनना होगा। d3js चयनकर्ताओं, इस

d3.select("#mydiv") 

तरह काम करते हैं तो बस इतना

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

बेशक तरह jQuery तत्व से id निकालने अगर आप केवल तत्व का चयन करने jQuery उपयोग कर रहे हैं तो आप d3js स्विच कर लेना चाहिए इसके बजाय चयन।

संपादित करें: मैं ओज़न का उत्तर ऊपर पसंद करता हूं, इसका उपयोग करें!

संबंधित मुद्दे

 संबंधित मुद्दे