2012-06-12 13 views
42

रिटर्न मैं निम्नलिखित कोड है:jQuery डेटा() रिटर्न अपरिभाषित, attr() पूर्णांक

alert($embellishment.data("embellishmentId")); 
alert($embellishment.attr("data-embellishmentId")); 

पहले चेतावनी जबकि दूसरा चेतावनी एक पूर्णांक, 3 रिटर्न देता है undefined,।

-- SEE DEMO --

मैं jQuery संस्करण 1.7.2 का उपयोग कर रहा

ऐसा क्यों है (data संस्करण 1.4 मेरा मानना ​​है कि साथ जोड़ा गया है)? क्या मुझे data() का उपयोग करना चाहिए यदि यह सही मूल्यों को वापस नहीं कर रहा है?

उत्तर

91

ठीक है। मुझे jQuery docs की व्याख्या करके समस्या मिली।

जब आप लिखें:

$embellishment.data("embellishmentId"); 

यह यौगिक विशेषता के रूप में jQuery द्वारा नियंत्रित किया जाता है:

<div data-embellishment-id="3"></div> 

तो, समस्या आप डेटा कुंजी में छोटे अक्षर का उपयोग कर सकते हल करने के लिए अन्यथा यह सिर्फ पतों अलग विशेषता। -; `आंतरिक समारोह में` dataAttr` .toLowerCase() `वर नाम =" डेटा- "+ key.replace (" $ 1 "rmultiDash,):

<!-- HTML --> 
<div data-embellishmentid="3"></div> 

// JavaScript 
$embellishment.data("embellishmentid"); 
+5

यहाँ स्रोत कोड है कि यह करता है। जहां 'rmultidash' 'rmultiDash =/([AZ])/g;' – Esailija

+0

http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding- कस्टम-non -विशिष्ट-डेटा-साथ-डेटा - * - गुण – Alex

+0

दोस्तों, jQuery ने लंबे समय से ऐसा किया है। सीएसएस विशेषताओं पर एक नज़र डालें। यदि आप एक सीएसएस शैली देखना चाहते हैं, तो यह अन-उद्धृत विशेषताओं के लिए ऊंटकेस का उपयोग करता है। उदाहरण के लिए: '$ ('# elem')। Css ({paddingTop: '40px'});' और '$ ('# elem')। Css ({'पैडिंग-टॉप': '40px'});' । – TerranRich

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