2012-10-13 12 views
17

एचटीएमएलjQuery सेट डेटा attr

<div id="you" data-you="Hello mean">super</div> 

है #you HTML तत्व परिवर्तन डेटा-आप विशेषता

console.log($("#you").data("you")); // Hello mean 

$("#you").attr("data-you", "yes change you atribute"); 

console.log($("#you").data("you")); // Hello mean | does not change. 

गुण "डेटा-आप" परिवर्तन नहीं होता है जब मैं बदल जाते हैं। मैं यह कैसे कर सकता हूँ?

धन्यवाद।

उत्तर

23

attr() और आपको डेटा() विधि को बदलने की आवश्यकता नहीं है।

नीचे दिए तरीक़े का प्रयास करें:

console.log($("#you").data("you")); // Hello mean 

$("#you").data("you", "yes change you atribute"); // yes change you atribute 

console.log($("#you").data("you")); // yes change you atribute 

डेटा का उदाहरण http://api.jquery.com/data/

+1

धन्यवाद बहुत, यह इस बार काम किया। –

+1

यदि किसी को उपर्युक्त उत्तर की पहली पंक्ति उलझन में मिलती है, तो कृपया नीचे मेरा उत्तर देखें। –

2

अपने ही तर्क पर, परिणाम देखने के लिए; attr

console.log($("#you").attr("data-you")); 

को data बदलने का संदर्भ लें LIVE DEMO

1

इस प्रयास करें:

$("#you").data("you", "yes change you atribute"); 
46

वहां पहले से ही एक जवाब सही रूप में चुना गया है, लेकिन इसकी लगता जवाब में से कोई भी तरह स्पष्ट रूप से और संक्षेप में बताएं कि क्या हो रहा है।
तो मुझे इस एक शॉट दे:

$(element).data(key, value) परिवर्तन एचटीएमएल 5 'डेटा- *' तत्व के गुण नहीं है, jQuery आंतरिक रूप से मुख्य मान संग्रहीत करता है (jQuery.cache में)।
परिणामस्वरूप जब आप $(element).data(key) पर कॉल करते हैं तो आपको jQuery द्वारा आंतरिक रूप से संग्रहीत किया जाता है।

आपके प्रश्न का उत्तर उत्तर देने के लिए:

आप अपना HTML टैग का data-you विशेषता बदली करने के लिए देख आप के बजाय attr() विधि

इस प्रकार का उपयोग करने की आवश्यकता होगी रहे हैं के बाद से:

console.log($("#you").attr("data-you")); // Hello mean 

$("#you").attr("data-you", "yes change you atribute"); 

console.log($("#you").attr("data-you")); // The data-you attribute has been changed. 
+1

यदि कोई दिलचस्पी लेता है, तो HTML5 संस्करण 'डेटा-एक्सेस तक पहुंचने की क्षमता jQuery संस्करण 1.4.3 में जोड़ा गया था। इससे पहले यह केवल तत्व से जुड़े आंतरिक डेटा स्टोरेज के लिए था, और वास्तव में यह अभी भी आंतरिक डेटा स्टोरेज के लिए है, नई सुविधा के साथ आप प्रारंभ में एचटीएमएल 5 डेटा-एट्रिब्यूट के साथ कुछ डेटा लोड कर सकते हैं। –

+0

आपका कोड स्निपेट बिल्कुल प्रश्न के समान ही है, सिवाय इसके कि आप डेटा का दावा करते हैं-आप विशेषता बदल दी गई है। जब मैं ऐसा करता हूं, तो विशेषता परिवर्तित नहीं होती है। क्या आप Yaşar İÇLİ के उत्तर से स्निपेट का उपयोग करना चाहते थे? – Gerbus

+0

कोड स्निपेट में 'डेटा' के बजाय' attr' है जो दूसरों द्वारा दिए गए कोड में मामला नहीं है। कृपया इस पहेली को देखें: http://jsfiddle.net/NneCY/ और कंसोल लॉग का निरीक्षण करें। धन्यवाद। –

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