2010-05-06 11 views
6

मैं jQuery के साथ डोम बनाने और AJAX (डेटा प्रकार = जेसन) के साथ प्राप्त डेटा के साथ भरने की कोशिश कर रहा हूं। मैं इस डेटा को किसी ऑब्जेक्ट के रूप में स्टोर करना चाहता हूं, जो एक विशिष्ट DOM तत्व से जुड़ा हुआ है। क्या jQuery इसके लिए कोई तरीका प्रदान करता है? कारण मैं इसे करना चाहता हूं क्योंकि डेटा का केवल एक हिस्सा शुरू में प्रदर्शित होता है; उपयोगकर्ता के कार्यों के आधार पर बाद में अन्य डेटा की आवश्यकता हो सकती है। , JQuery (div[0].foo = {bar: 'foobar'};) "को दरकिनार" द्वाराjquery, तत्वों को जोड़ने (स्ट्रिंग विशेषता के बजाय) तत्व

var div = $('<div/>'); 
div.attr('foo', {bar: 'foobar'}); 
alert(div.attr('foo')); // gives "[object Object]" 
alert(typeof div.attr('foo')); // gives "string" 
alert(div.attr('foo').bar); // gives "undefined" 

यह करने के लिए किया जाएगा एक और तरीका है, हालांकि:

मैं attr() उपयोग करने की कोशिश, लेकिन यह एक स्ट्रिंग "[वस्तु वस्तु]" एक वास्तविक वस्तु के स्थान पर संग्रहीत करता है यह एक "गंदे कामकाज" प्रतीत होता है, अगर jQuery पहले से ही संलग्न वस्तुओं का समर्थन करने के लिए होता है।

कोई भी विचार? अग्रिम में धन्यवाद!

उत्तर

8

आप इस तरह उस उद्देश्य के लिए .data() उपयोग कर सकते हैं,:

div.data('foo', { bar: 'foobar' }); //sets it 
var obj = div.data('foo'); //gets it 

You can see your example code working here just by changing .attr() to .data():

var div = $('<div/>'); 
div.data('foo', {bar: 'foobar'}); 
alert(div.data('foo')); // gives "[object Object]" 
alert(typeof div.data('foo')); // gives "object" 
alert(div.data('foo').bar); // gives "foobar"​​​​​​​​​​​​​​ 
+0

धन्यवाद, '.data()' है कि मैं क्या :) – binaryLV

1

मेरा सुझाव है कि आप डेटा का उपयोग jQuery वस्तु की विधि। इस तरह आप संबंधित डीओएम तत्व में कस्टम डेटा (जेएसओएन) संलग्न कर सकते हैं।

jQuery("div").data("key", /* JSON object */); 

बाद में आप संबद्ध डेटा निम्नलिखित तरीके से प्राप्त कर सकते हैं:: यहाँ नमूना कोड है

var data = jQuery("div").data("key"); 
+0

लिए देख रहा था उफ़, नहीं था ' ध्यान देना टी पहले से ही जवाब दिया गया था –

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