2013-10-08 5 views
44

id एक विशेषता या HTML की संपत्ति है?एचटीएमएल - विशेषताओं बनाम गुण

मैं $('#selector').attr('id'); या $('#selector').prop('id');

मैं कई लेख पढ़ने के बाद भी उलझन में क्या करना चाहिए।

किसी ने मुझे समझाने कृपया सकते हैं क्या HTML/JS में विशेषताओं & गुण के बीच मतभेदों को बहुत ही सरल भाषा में कर रहे हैं?

+6

http://stackoverflow.com/questions/5874652/prop-vs-attr – Satpal

+3

@Satpal जुड़ा हुआ प्रश्न jQuery कार्यों के बीच मतभेदों को पूछ रहा है, जबकि यह सवाल पूछ रहा है कि क्या अंतर है एचटीएमएल में गुणों और विशेषताओं के बीच। – Trisped

उत्तर

112

विशेषताएँ HTML द्वारा परिभाषित की गई हैं। गुणों को डीओएम द्वारा परिभाषित किया जाता है। गुण पर 1 मानचित्रण:

कुछ HTML गुण 1 है। id इस तरह का एक उदाहरण है।

कुछ नहीं (जैसे value विशेषता एक इनपुट के प्रारंभिक मान निर्दिष्ट करता है, लेकिन value संपत्ति वर्तमान मान निर्दिष्ट करता है) है।

+0

क्या हमेशा प्रत्येक विशेषता के अनुरूप एक संपत्ति है? क्या विशेषता के मूल्य और संपत्ति के मूल्य के बीच हमेशा प्रारंभिक 1: 1 मैपिंग है? –

+2

@ केविनहेलर - नहीं और नहीं। – Quentin

4

हाँ, attr एचटीएमएल विशेषताओं के लिए है के रूप में वे सख्ती से परिभाषित कर रहे हैं। प्रोप गुणों के लिए है।

तो उदाहरण के लिए, कहें कि आपके पास कक्षा "कुछ" (कच्चा तत्व jQuery ऑब्जेक्ट नहीं है) के साथ एक नोड elem है। elem.className संपत्ति है, लेकिन वह जगह है जहां विशेषता रहता है। कक्षा विशेषता को बदलने से संपत्ति को स्वचालित रूप से बदल दिया जाता है और इसके विपरीत बनाम होता है।

वर्तमान में, अटार झुका हुआ और भ्रमित है क्योंकि उसने दोनों कार्यों के काम की कोशिश की है और इसके कारण कई कीड़े हैं। JQuery.fn.prop का परिचय कई अवरोधकों को अलग करेगा, अलग कोड के रूप में इसे शुरुआत से अलग किया जाना चाहिए था, और डेवलपर्स को जो कुछ करने की उम्मीद है, वह करने के लिए तेज़ी से काम करता है।

मुझे एक सेकेंड के लिए प्रतिशत बनाने दें और कहें कि आईआरसी के समर्थन में मेरे अनुभव से और अन्य कोड पढ़ने के बाद, एटीआर के लिए 9 5% उपयोग मामलों को प्रोप पर स्विच नहीं करना पड़ेगा।

See More

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