2011-08-29 10 views
8

प्रमुख आधुनिक ब्राउज़र आईई-परिवार को छोड़कर गतिशील रूप से कस्टम विशेषता को सेट/पुनर्प्राप्त करने का समर्थन करते हैं। मैं सभी ब्राउज़रों में अपनी कस्टम विशेषता कैसे सेट/प्राप्त कर सकता हूं?सेट/गतिशील रूप से कस्टम विशेषता

एचटीएमएल:

<input id="myInput" type="text" /> 

जे एस:

var myInput = document.getElementById('myInput'); 
myInput.setAttribute('custom-attr', 'custom-value'); 
alert(myInput.getAttribute('custom-attr')); 

या

var myInput = document.getElementById('myInput'); 
var customAttr = document.createAttribute('custom-attr'); 
customAttr.value = 'custom-value'; 
myInput.setAttributeNode(customAttr); 
alert(myInput.getAttribute('custom-attr')); 

दोनों ही मामलों में alert() रिटर्न IE

यह वही है मैं अब तक की कोशिश की है है null

+0

मुझे वास्तव में आपके पहले कोड के साथ कोई समस्या नहीं दिखाई देती है। इसे एमएसआईई 6.0 और 8.0 में आज़माया गया, सही ढंग से "कस्टम-वैल्यू" प्रदर्शित करता है। –

+0

आईई का कौन सा संस्करण? – epascarello

उत्तर

12

मैं IE7/8

var myInput = document.getElementById('myInput'); 
myInput.setAttribute('custom-attr', 'custom-value'); 
alert(myInput.getAttribute('custom-attr')); 

पर अपने कोड का परीक्षण किया और यह ठीक चलाता है। क्या यह सरल परीक्षण केस आपके लिए असफल रहता है, या आप वास्तव में कुछ अलग कर रहे हैं?

आप ब्रैकेट अंकन

var myInput = document.getElementById('myInput'); 
myInput['custom-attr'] = 'custom-value'; 
alert(myInput['custom-attr']); 

उपयोग कर सकते हैं आप नाम में - नहीं था, तो आप

var myInput = document.getElementById('myInput'); 
myInput.customAttr = 'custom-value'; 
alert(myInput.customAttr); 
+2

वे वास्तव में विशेषता नहीं हैं; वे गुण हैं। – lonesomeday

+3

Google पर अतिरिक्त जानकारी खोजने में सहायता के लिए एक नोट: इस सुविधा को "विस्तार गुण" कहा जाता है। –

2

आपका कोड IE6, IE7, IE8 पर बस ठीक काम करता है डॉट संकेतन का उपयोग कर सकते हैं , एफएफ, क्रोम, ओपेरा।