HTML स्रोत कोड लिखते समय, आप अपने HTML तत्वों पर विशेषताओं को परिभाषित कर सकते हैं । फिर, एक बार जब ब्राउज़र आपके कोड को पार्स कर देता है, तो एक संबंधित DOM नोड बनाया जाएगा। यह नोड एक ऑब्जेक्ट है, और इसलिए इसमें गुण हैं ।
उदाहरण के लिए, यह HTML तत्व:
<input type="text" value="Name:">
2 विशेषताएँ ( typeऔर value) हैं।
एक बार जब ब्राउज़र इस कोड को पार्स कर देता है, तो एक HTMLInputElement ऑब्जेक्ट बनाया जाएगा, और इस ऑब्जेक्ट में दर्जनों गुण शामिल होंगे: जैसे, स्वीकार करें, AccessKey, align, alt, विशेषताएँ, ऑटोफोकस, आधार, जाँच, चाइल्डइमेंटकाउंट, चाइल्डनॉड्स, बच्चे, क्लासिस्ट, क्लासनेम, क्लाइंटहाइट, आदि
किसी दिए गए DOM नोड ऑब्जेक्ट के लिए, गुण उस ऑब्जेक्ट के गुण हैं, और विशेषताएँ attributesउस ऑब्जेक्ट की संपत्ति के तत्व हैं।
जब किसी दिए गए HTML तत्व के लिए DOM नोड बनाया जाता है, तो इसके कई गुण समान या समान नामों वाले गुणों से संबंधित होते हैं, लेकिन यह एक-से-एक संबंध नहीं है। उदाहरण के लिए, इस HTML तत्व के लिए:
<input id="the-input" type="text" value="Name:">
इसी डोम नोड होगा id, typeऔर valueगुण (दूसरों के बीच):
idसंपत्ति एक है परिलक्षित संपत्ति के लिए idविशेषता: संपत्ति हो रही विशेषता मान पढ़ता है, और संपत्ति की स्थापना विशेषता मान लिखता है। idएक शुद्ध परिलक्षित संपत्ति है, यह मूल्य को संशोधित या सीमित नहीं करता है।
typeसंपत्ति एक है परिलक्षित संपत्ति के लिए typeविशेषता: संपत्ति हो रही विशेषता मान पढ़ता है, और संपत्ति की स्थापना विशेषता मान लिखता है। typeयह एक शुद्ध परिलक्षित संपत्ति नहीं है क्योंकि यह ज्ञात मूल्यों (जैसे, इनपुट के मान्य प्रकार) तक सीमित है । अगर आपके पास था <input type="foo">, तो theInput.getAttribute("type")आपको देता है "foo"लेकिन theInput.typeआपको देता है "text"।
इसके विपरीत, गुण विशेषता valueको प्रतिबिंबित नहीं करता है value। इसके बजाय, यह इनपुट का वर्तमान मूल्य है। जब उपयोगकर्ता मैन्युअल रूप से इनपुट बॉक्स का मूल्य बदलता है, तो valueसंपत्ति इस परिवर्तन को प्रतिबिंबित करेगी। इसलिए यदि उपयोगकर्ता "John"इनपुट बॉक्स में इनपुट करता है, तो:
theInput.value // returns "John"
जहाँ तक:
theInput.getAttribute('value') // returns "Name:"
valueसंपत्ति को दर्शाता है वर्तमान जबकि, पाठ सामग्री इनपुट बॉक्स के अंदर valueविशेषता है प्रारंभिक के पाठ्य-सामग्री valueHTML स्रोत कोड से विशेषता।
इसलिए यदि आप जानना चाहते हैं कि वर्तमान में टेक्स्ट-बॉक्स के अंदर क्या है, तो संपत्ति पढ़ें। यदि आप, हालांकि, जानना चाहते हैं कि पाठ-बॉक्स का प्रारंभिक मूल्य क्या था, तो विशेषता पढ़ें। या आप defaultValueसंपत्ति का उपयोग कर सकते हैं, जो valueविशेषता का शुद्ध प्रतिबिंब है :
theInput.value // returns "John"
theInput.getAttribute('value') // returns "Name:"
theInput.defaultValue // returns "Name:"
वहाँ कई गुण हैं जो सीधे उनके विशेषता (प्रतिबिंबित कर रहे हैं rel, id), कुछ थोड़ा-अलग नामों के साथ सीधे प्रतिबिंब (हैं htmlForदर्शाता है forविशेषता, classNameदर्शाता classविशेषता), कई कि उनकी विशेषता को प्रतिबिंबित लेकिन प्रतिबंध / संशोधनों (साथ src, href, disabled, multiple), इसलिए और पर। कल्पना विभिन्न प्रकार के प्रतिबिंब को कवर करती है।