jQuery का .data () एक दो चीजें करता है, लेकिन यह डोम को एक विशेषता के रूप में डेटा नहीं जोड़ता है। डेटा विशेषता को हथियाने के लिए इसका उपयोग करते समय, सबसे पहले यह एक jQuery डेटा ऑब्जेक्ट बनाता है और डेटा विशेषता के लिए ऑब्जेक्ट का मान सेट करता है। उसके बाद, यह अनिवार्य रूप से डेटा विशेषता से डिकॉप्ड है।
उदाहरण:
<div data-foo="bar"></div>
यदि आपने विशेषता का मान पकड़ा है .data('foo')
, तो यह "बार" लौटाएगा जैसा कि आप उम्मीद करेंगे। यदि आप तब विशेषता का उपयोग कर बदल देते हैं .attr('data-foo', 'blah')
और फिर बाद .data('foo')
में मान को हथियाने के लिए उपयोग करते हैं, तो यह DOM के कहने पर भी "बार" लौटा देगा data-foo="blah"
। यदि आप .data()
मान सेट करने के लिए उपयोग करते हैं , तो यह मान को jQuery ऑब्जेक्ट में बदल देगा, लेकिन DOM में नहीं।
मूल रूप से, .data()
jQuery ऑब्जेक्ट के डेटा मान को सेट या चेक करने के लिए है। यदि आप इसकी जाँच कर रहे हैं और इसमें पहले से ही एक नहीं है, तो यह DOM में मौजूद डेटा विशेषता के आधार पर मान बनाता है। .attr()
DOM तत्व की विशेषता मान को सेट करने या जाँचने के लिए है और jQuery डेटा मान को स्पर्श नहीं करेगा। आप उन दोनों को बदलना चाहते हैं तो आप दोनों का उपयोग करना चाहिए .data()
और .attr()
। अन्यथा, एक या दूसरे के साथ छड़ी।
.data()
जब तक कि आपके पास वास्तव में उपयोग करने का कोई कारण न हो.attr()
।