आपको लगता है कि यह कहां मिल गया है, लेकिन यहां पर थोड़ा सा तरीका है। कुछ नियम हैं जिनका उपयोग करने से पहले आपको अवगत होना चाहिए।
जोड़ना
जोड़ना वस्तु $ से लौटे का उपयोग कर चर ('। चयनकर्ता')। डेटा() काम करता है क्योंकि डेटा ऑब्जेक्ट संदर्भ द्वारा गुजरता है, तो कहीं भी आप प्रॉपर्टी जोड़ना, यह जोड़ा जाता है। यदि आप किसी अन्य तत्व पर डेटा() कहते हैं, तो यह बदल जाता है। यह यह क्या यह क्या है है
var oData = $('#id').data();
oData.num = 0;
oData.num == $('#id').data().num; // true
एक वस्तु जोड़ना डेटा वस्तु के अंदर एक वस्तु देता है, साथ ही है ... "पहले से उस तत्व के साथ संग्रहीत डेटा फैली हुई है।" - http://api.jquery.com/data/#entry-longdesc
इसका मतलब है कि dataObj को एक obj जोड़ने हो जाता है
oData.obj = {};
oData === { /*previous data*/, obj : { } }
एक सरणी पहले से संग्रहीत डेटा विस्तार नहीं करता है जोड़ा जा रहा है, लेकिन या तो एक साधारण मूल्य के रूप में ही व्यवहार करते हैं नहीं है ...
का उपयोग कर आप सरल मान संग्रहीत है, तो आप उन्हें चर में जगह है और डेटा ऑब्जेक्ट को बदले बिना क्या आप उनके साथ चाहते हैं कर सकते हैं।
तथापि
यदि आप एक वस्तु या एक तत्व पर डाटा स्टोर करने की सरणी का उपयोग कर रहे हैं, सावधान!
सिर्फ इसलिए कि आप इसे एक चर में संग्रहीत करते हैं, इसका मतलब यह नहीं है कि आप डेटा मान नहीं बदल रहे हैं। सिर्फ इसलिए कि आप इसे किसी फ़ंक्शन में पास करते हैं, इसका मतलब यह नहीं है कि आप डेटा मान नहीं बदल रहे हैं!
यह वही है जो यह है .. जब तक कि यह आसान न हो .. तो यह सिर्फ एक प्रति है। : Http://firequery.binaryage.com/: p
var data = $("#id").data(); // Get a reference to the data object
data.r_redirect = "index.php"; // Add a string value
data.num = 0; // Add a integer value
data.arr = [0,1,2]; // Add an array
data.obj = { a : "b" }; // Add an object
// but here is where the fun starts!
var r_redirectString = data.r_redirect; // returns "index.php", as expected.. cool
r_redirectString = "changed" // change the value and the compare :
data.r_redirect == r_redirectString // returns false, the values are different
var oArr = data.arr; // Now lets copy this array
oArr.push(3); // and modify it.
data.arr == oArr // should be false? Nope. returns true.
// arrays are passed by reference.
// but..
var oObj = data.obj // what about objects?
oObj["key"] = "value"; // modify the variable and
data.obj["key"] == oObj["key"] // it returns true, too!
तो, संसाधनों ..
What's the best way to store multiple values for jQuery's $.data()? https://stackoverflow.com/a/5759883/1257652
आप firequery उपयोग करना चाहिए। 'डेटा()' आपके डेटा के साथ jquery डोम बढ़ाता है ... आपको उन्हें अग्नि अग्निशामक देखने में सक्षम होना चाहिए – meo
क्या आपने minified स्रोत को देखा? यदि आपने किया है, तो बस इतना ही बुरा मत मानो क्योंकि यह सब कुछ सिर्फ ब्राउज़र के लिए पूरी तरह से समझ में नहीं आता है। यहां तक कि गैर संपीड़ित स्रोत भी बहुत उन्नत है और अक्सर देखना मुश्किल है। : डी –
मैंने कार्यान्वयन का एक उदाहरण बनाया: इसे जांचें, यह बहुत आसान है: https://jsfiddle.net/andrevlima/zb8oo0p0/24/ storeData (तत्व, डेटा) // -> नया डेटा स्टोरडेटा (तत्व)// -> पंजीकृत डेटा प्राप्त करें –