मैं भंडारण कर रहा हूँ एक HTML टैग में data-
दृष्टिकोण का उपयोग कर डेटा HTML jQuery में डेटा विशेषता में स्टोर JSON ऑब्जेक्टतो जैसे
$(this).data('imagename');
यह ठीक काम करता है। जो मैं फंस गया हूं, वह इसके गुणों में से केवल एक वस्तु को सहेजने की कोशिश कर रहा है। मैं यह कर की कोशिश की:
<td><button class='delete' data-image='"+results[i]+"'>Delete</button></td>
तो मैं इस तरह नाम संपत्ति का उपयोग करने की कोशिश की:
var imageObj = $(this).data('image');
console.log('Image name: '+imageObj.name);
लॉग मुझे undefined
बताता है। तो ऐसा लगता है जैसे मैं data-
विशेषताओं में सरल तार स्टोर कर सकते हैं, लेकिन मैं संग्रहीत नहीं कर सकता JSON वस्तुओं ...
मैं भी कोई भाग्य के साथ वाक्य रचना के इस बच्चे का उपयोग करने की कोशिश की है:
<div data-foobar='{"foo":"bar"}'></div>
data-
दृष्टिकोण का उपयोग कर HTML टैग में वास्तविक ऑब्जेक्ट को स्टोर करने के तरीके पर कोई विचार है?
तो डेटा- दृष्टिकोण का उपयोग कर मुझे मान संग्रहीत प्रत्येक बटन को हटाने के लिए अनुमति देता है (प्रत्येक बटन हो जाता है एक अलग जेसन ऑब्जेक्ट ...) मेरे पास ऊपर दिखाए गए एचएमटीएल टैग डालकर टेबल में है। क्या आप सुझाव दे रहे हैं कि मैं प्रत्येक ऑब्जेक्ट को संबंधित डिलीट बटन से जोड़ूं? मैं यह कैसे करूं , मैं $ ('# myElement') का उपयोग कैसे करूं? माफ करना, मुझे इस पर अनुभव नहीं हुआ। धन्यवाद – zumzum
तो मैंने प्रत्येक एचटीएमएल बटन को एक इंडेक्स असाइन किया:
वास्तव में, अपने पिछले उदाहरण:
अच्छी तरह से काम कर रहा प्रतीत होता है (देखें http://jsfiddle.net/GlauberRocha/Q6kKU/)।
अच्छी बात यह है कि डेटा-स्ट्रिंग में स्ट्रिंग स्वचालित रूप से जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित हो जाती है। मुझे इस दृष्टिकोण में कोई कमी नहीं दिख रही है, इसके विपरीत! ऑब्जेक्ट गुणों के माध्यम से जावास्क्रिप्ट में उपयोग करने के लिए तैयार डेटा के पूरे सेट को स्टोर करने के लिए एक विशेषता पर्याप्त है।
(नोट: डेटा-विशेषताओं को स्ट्रिंग के बजाए ऑब्जेक्ट को स्वचालित रूप से टाइप करने के लिए, आपको विशेष JSON लिखने के लिए सावधान रहना चाहिए, विशेष रूप से डबल कोट्स में मुख्य नाम संलग्न करना)।
स्रोत
2012-02-24 12:05:59
यदि यह किसी की सहायता करता है, तो यहां उपरोक्त तक पहुंचने का तरीका बताया गया है: '$ ('div')। डेटा ('foobar')। Foo'। http://api.jquery.com/data/ – Gary
@GlauberRocha क्या होगा यदि आपके पास डेटा-foobar ऑब्जेक्ट के अंदर दो तत्व थे और आप केवल एक तत्व को हटाना चाहते थे .. आप यह कैसे करेंगे? –
एक बार आपके मार्कअप में डेटा को जावास्क्रिप्ट ऑब्जेक्ट ('var foobar = $ (' div ') के रूप में एक्सेस किया गया है। डेटा (' foobar ') '), आप एक संपत्ति को हटाने के लिए ** हटाएं ** ऑपरेटर का उपयोग कर सकते हैं: 'foobar.foo' हटाएं (या 'foobar [' foo '] हटाएं'), या जो कुछ भी आपको पसंद है उसे करें। –
मेरे लिए यह उस तरह काम करते हैं, के रूप में मैं टेम्पलेट में संग्रहीत करना होगा ...
स्रोत
2014-05-26 12:02:39 molokoloco
साझा करने के लिए धन्यवाद .. वास्तव में जो मैं खोज रहा था ... स्वीकार किए गए उत्तर को पार्स करने का प्रयास करते समय [ऑब्जेक्ट ऑब्जेक्ट] प्राप्त करना जारी रखा। – greaterKing
@greaterKing आप जेएसओएन को स्वीकृत उत्तर से पार्स नहीं करते हैं, तो आप इसे उस कुंजी के माध्यम से एक्सेस करते हैं जो डेटा नाम के समान है, इसलिए यदि आपके पास उदा। '$ ('बॉडी') डेटा ('myData', {h:" हैलो ", डब्ल्यू:" दुनिया "})' _____________________________________________________________________________________________ आपको अपना JSON ऑब्जेक्ट '$ ('body') प्राप्त होगा। डेटा()। myData ' –
सरल बनाने के लिए, आप'
''कर सकते हैं। वे सभी एकल उद्धरण हैं, शुरुआत और अंत अभी से बच निकले हैं, इसलिए यह '' {"कुछ": "चीज़"} '' – IamFaceका उपयोग करना documented jquery .data(obj) syntax आप DOM तत्व की एक वस्तु स्टोर करने के लिए अनुमति देता है। तत्व का निरीक्षण
data-
विशेषता नहीं दिखाएगा क्योंकि ऑब्जेक्ट के मान के लिए कोई कुंजी निर्दिष्ट नहीं है।हालांकि, ऑब्जेक्ट के भीतर डेटा को.data("foo")
के साथ कुंजी द्वारा संदर्भित किया जा सकता है या संपूर्ण ऑब्जेक्ट.data()
के साथ वापस किया जा सकता है।तो तुम एक पाश और
result[i] = { name: "image_name" }
की स्थापना की यह मानते हुए कि:स्रोत
2015-11-18 21:14:17 user2069751
किसी कारण से, स्वीकार किए जाते हैं जवाब केवल तभी पेज पर एक बार इस्तेमाल किया जा रहा मेरे लिए काम किया, लेकिन मेरे मामले में मैं डेटा को बचाने के लिए कोशिश कर रहा था पृष्ठ पर कई तत्वों पर और पहले तत्व को छोड़कर डेटा किसी भी तरह खो गया था।
वैकल्पिक रूप से, मैंने डेटा को डोम पर लिखना समाप्त कर दिया और आवश्यकता होने पर इसे वापस पार्स कर दिया। शायद यह कम कुशल है, लेकिन मेरे उद्देश्य के लिए अच्छा काम किया क्योंकि मैं वास्तव में डेटा प्रोटोटाइप कर रहा हूं और इसे उत्पादन के लिए नहीं लिख रहा हूं।
डेटा मैं इस्तेमाल किया सहेजने के लिए: करने से यह इस तरह से भी किया जाता डेटा दिखाई
:
तो डेटा वापस पढ़ने के लिए स्वीकार किए जाते हैं जवाब, अर्थात् के रूप में ही है डोम में अगर मैं क्रोम के डीबगर के साथ तत्व का निरीक्षण करना चाहता था।
स्रोत
2016-03-05 02:01:16
.data()
ज्यादातर मामलों के लिए पूरी तरह से काम करता है। एक बार मुझे एक समस्या थी जब JSON स्ट्रिंग के पास एक ही उद्धरण था। मैं पिछले यह इतना इस दृष्टिकोण का सहारा पाने के लिए किसी भी आसान तरीका (सर्वर भाषा के रूप में Coldfusion उपयोग कर रहा हूँ) नहीं पा सके:स्रोत
2016-03-23 14:07:18
धारावाहिक डेटा भंडारण के साथ समस्याओं का एक बहुत base64 करने के लिए धारावाहिक स्ट्रिंग में कनवर्ट करके हल किया जा सकता । बेस 64 स्ट्रिंग को बिना किसी झगड़े के कहीं भी स्वीकार किया जा सकता है। एक नज़र डालें:
आवश्यकतानुसार/से कनवर्ट करें।
स्रोत
2016-12-20 19:17:01 Dan
अच्छा समाधान thnx जैसा ही होगा – Sajan
इस तरह यह मेरे लिए काम करता है।
HTML डेटा विशेषता में एक JSON को सहेजने के लिए, स्ट्रिंग JSON ऑब्जेक्ट और इसे "encodeURIComponent()" विधि से एन्कोड करें।
डेटा को वापस पढ़ने के दौरान, इसे "decodeURIComponent()" विधि से डीकोड करें और स्ट्रिंग को JSON ऑब्जेक्ट पर पार्स करें।
उदाहरण:
बचत डेटा:
पढ़ना डाटा:
स्रोत
2017-09-29 17:47:38
रिकॉर्ड के लिए, मैंने पाया निम्नलिखित कोड काम करता है। यह आपको डेटा टैग से सरणी पुनर्प्राप्त करने, एक नया तत्व धक्का देने और सही JSON प्रारूप में डेटा टैग में वापस संग्रहीत करने में सक्षम बनाता है। इसलिए वांछित अगर सरणी में आगे तत्व जोड़ने के लिए एक ही कोड का उपयोग किया जा सकता है। मैंने पाया कि
$('#my-data-div').attr('data-namesarray', names_string);
सही ढंग से सरणी संग्रहीत करता है, लेकिन$('#my-data-div').data('namesarray', names_string);
काम नहीं करता है।स्रोत
2017-10-26 13:33:29 Bazley
चाल मेरे लिए के लिए गया था कुंजियों को दोहरे उद्धरण चिह्नों को जोड़ने और महत्व देता है। यदि आप एक php फ़ंक्शन का उपयोग करते हैं जैसे json_encode आपको एक जेसन एन्कोडेड स्ट्रिंग और एक विचार को आपके एन्कोड करने का तरीका बताएगा।
jQuery ('# एल्म-आईडी')। डेटा ('datakey') यदि स्ट्रिंग ठीक से json के रूप में इनकोडिंग स्ट्रिंग की एक वस्तु वापस आ जाएगी।
jQuery प्रलेखन के अनुसार: (http://api.jquery.com/jquery.parsejson/)
एक जावास्क्रिप्ट अपवाद में एक विकृत JSON स्ट्रिंग परिणामों में पासिंग फेंक दिया जा रहा है। उदाहरण के लिए, निम्नलिखित सभी अमान्य JSON तार कर रहे हैं:
स्रोत
2017-12-09 19:46:37
संबंधित मुद्दे