2010-12-04 17 views
15

उस तत्व को निकालने या प्रतिस्थापित करने के बाद jQuery.data() फ़ंक्शन का उपयोग करके दिए गए तत्व के लिए संग्रहीत डेटा का क्या होता है? परीक्षणों में ऐसा प्रतीत होता है कि यह डेटा अब उस तत्व के बाद उपलब्ध नहीं है जब इसे हटाया गया था।क्या तत्व हटा दिए जाने पर jquery की डेटा विधि से संग्रहीत डेटा हटा दिया जाता है?

+2

हे, अच्छा सवाल! +1। JQuery दस्तावेज़ों में कुछ भी नहीं: http://api.jquery.com/jQuery.data/ को शायद स्रोत कोड को देखना होगा। –

उत्तर

16

हाँ, जब एक तत्व (एक माता पिता पर या .html()) एक माता पिता पर .remove() या .empty() द्वारा हटा दिया जाता, डेटा (jQuery.cache वस्तु में संग्रहीत) के रूप में अच्छी तरह से साफ किया जाता है।

आप स्रोत में देख सकते हैं:

इन सभी मामलों में, jQuery.cleanData() समारोह काम करता है। .removeData() और $.removeData():


मामले दूसरों को यह खोजने में तरीके सीधे डेटा को दूर करने के लिए देख रहे हैं, वहाँ इस के लिए काम करता है, बस आमतौर पर सीधे नहीं किया जाता है। वे .data() और $.data() जैसे व्यवहार में व्यवहार करते हैं - डेटा कुंजी (नाम पैरामीटर) के बिना वे तत्व के लिए सभी डेटा मान साफ़ करेंगे।

+0

क्या यह अंतर्निहित तत्वों के लिए भी सही है? जब मैं एक कंटेनर खाली करता हूं, तो क्या सभी बच्चों के लिए डेटा भी साफ हो जाता है? –

+2

@Pekka - हाँ, यह एक 'getElementsByTagName (" * ")' सभी बच्चों –

+0

हड़पने के लिए और अगर एक तत्व एक सीधा डोम कॉल द्वारा हटा दिया जाता है, डेटा वास्तव में से jQuery कैश में बनी हुई है, लेकिन वास्तव में "हटा" है करता है तत्व, क्योंकि इसका पुन: उपयोग नहीं किया जाएगा, भले ही सटीक उसी तत्व को बाद में बनाया गया हो, सही? –

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

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