attr
विधि के लिए jQuery documention कहा गया है कि:अंतर()
विशेषता मान ऐसे मूल्य और tabindex के रूप में कुछ विशेषताओं के अपवाद के साथ तार कर रहे हैं।
और उस मामले होने लगते है। निम्नलिखित तत्व पर विचार करें:
<input type="text" id="example" tabindex="3">
निम्न पंक्ति वास्तव में शो "संख्या", नहीं "स्ट्रिंग" करता है:
alert(typeof $("#example").attr("tabindex")); //Number
अब, बात यह है कि मुझे भ्रमित कर रहा है कि डोम विधि getAttribute
का उपयोग करते समय, आप एक अलग परिणाम प्राप्त:
alert(typeof $("#example")[0].getAttribute("tabindex")); //String
attr
विधि के लिए jQuery स्रोत को देखते हुए, ऐसा लगता है कि jQuery बस क्या रिटर्न getAttribute
रिटर्न, तो कोई अंतर क्यों है? यहाँ
ret = elem.getAttribute(name);
// Non-existent attributes return null, we normalize to undefined
return ret === null ?
undefined :
ret;
और मुद्दा प्रदर्शित करने के लिए एक fiddle है: यहाँ relevant lines of the jQuery source है। बस मामलों को भ्रमित करने के लिए, मैंने इसे क्रोम 15, फ़ायरफ़ॉक्स 8, आईई 8 और आईई 7 में आजमाया है, और आईई 7 को छोड़कर ऊपर वर्णित सभी व्यवहार करते हैं, जो दोनों के लिए "संख्या" को अलर्ट करता है (जो मैं होने की उम्मीद करता हूं) ।
आह, जो मुझे jQuery स्रोत के बाद थोड़ा आगे और ठीक से देखने के लिए सिखाएगा! धन्यवाद। –
आपको मास्टर शाखा के बजाय, एक निश्चित टैग से लिंक करना चाहिए। अन्यथा भविष्य में रेखा संख्या बदल सकती है। –
@ फ़ेलिक्सक्लिंग: हो गया, धन्यवाद :) – Matt