2011-06-21 14 views
7

कुछ भी जो आप आईडी के साथ कर सकते हैं आप कक्षाओं के साथ कर सकते हैं।आईडी क्यों मौजूद हैं?

तो फिर एक आईडी विशेषता क्यों है?

हाँ आईडी अद्वितीय है, लेकिन एक वर्ग अद्वितीय भी हो सकता है ...

+11

मुझे लगता है कि डाउनवॉटिंग w/o टिप्पणी तब तक अक्षम की जानी चाहिए जब तक कि आप 10K + –

+0

विकिपीडिया से नहीं हैं: आईडी विशेषता किसी तत्व के लिए दस्तावेज़-विस्तृत अद्वितीय पहचानकर्ता प्रदान करती है। इसका उपयोग तत्व की पहचान करने के लिए किया जाता है ताकि स्टाइलशीट अपनी प्रस्तुति गुणों को बदल सके, और स्क्रिप्ट अपनी सामग्री या प्रस्तुति को बदल, एनिमेट या हटा सकते हैं। पृष्ठ के यूआरएल में संलग्न, यह तत्व के लिए वैश्विक रूप से अद्वितीय पहचानकर्ता प्रदान करता है, आमतौर पर पृष्ठ का उप-अनुभाग। उदाहरण के लिए, http://en.wikipedia.org/wiki/HTML#Attributes –

+0

@MK में आईडी "विशेषताएँ": मैं तेज़ टाइप नहीं कर सकता, ठीक है ... –

उत्तर

8

सबसे पहले, HTML 4.01 Specification Section 7.5.2 से:

आईडी = नाम

यह विशेषता एक तत्व के लिए एक नाम प्रदान करती है। यह नाम किसी दस्तावेज़ में अद्वितीय होना चाहिए।

वर्ग = cdata-सूची

यह विशेषता एक वर्ग के नाम प्रदान करती है या एक तत्व को वर्ग नामों में से निर्धारित किया है। तत्वों की किसी भी संख्या को समान श्रेणी का नाम या नाम असाइन किया जा सकता है। एकाधिक वर्ग नामों को सफेद स्पेस वर्णों से अलग किया जाना चाहिए।

मैं समझता हूँ कि अपने प्रश्न की भावना है कि जानबूझकर अद्वितीय वर्ग के नाम का चयन करके, आप आईडी गुणों द्वारा दिए गए कार्यक्षमता अनुकरण कर सकते हैं, यकीनन आईडी अनावश्यक गुण बना रही है। खैर, मैं कम से कम एक चीज के बारे में सोच सकता हूं जिसे किया जा सकता है केवल आईडी के साथ; for विशेषता का उपयोग कर एक फॉर्म तत्व के साथ <label> तत्व को जोड़ना। उदाहरण:

<label for="firstname">First Name:<label> 
<input type="text" id="firstname" name="firstname" value="" /> 

यह पहुंच के कारणों के लिए एक अच्छा अभ्यास है। यदि आप चेकबॉक्स या रेडियो बटन तत्वों के साथ <label for="id"> का उपयोग करते हैं, तो आपको क्लिक करने योग्य लेबल का अतिरिक्त बोनस मिलता है। उदाहरण के लिए:

<label for="male">Male</label> <!-- the word "Male" is clickable --> 
<input type="radio" id="male" name="sex" value="male" /> 
<label for="female">Female</label> <!-- the word "Female" is clickable --> 
<input type="radio" id="female" name="sex" value="female" /> 
+1

के अनुरोध पर कुछ और सारांश जोड़ा गया, वही लाइनों के साथ, कुछ [वाईएआई-एआरआईए गुण] (http://www.w3.org/TR/2010/WD-wai-aria-20100916/states_and_properties) केवल आईडी के उपयोग करें। i.e. aria-activedescendant, एरिया-कंट्रोल, एरिया-वर्णित, एरिया-फ्लोतो, एरिया-लैबेलबी और एरिया-मालिक। – Alohci

4

वर्ग समान तत्वों का एक सेट आईडी एक तत्व के लिए अद्वितीय है के लिए है। यदि आप सभी को बदलना चाहते हैं, तो कहें, चेकबॉक्स, आप कक्षा का उपयोग करते हैं। यदि आप किसी विशिष्ट चेकबॉक्स में कुछ करना चाहते हैं, तो आप आईडी का उपयोग करें।

+0

आप उस आईडी को कक्षा के रूप में उपयोग कर सकते हैं, इसलिए इस मामले में आईडी विशेषता – Alex

+1

@Alex है, जिसे आप ** ऑब्जेक्ट की पहचान करना चाहते हैं, ** ** ** ** नहीं। आप इसे एक निश्चित कक्षा में नहीं डालते हैं, आप इसे एक पहचान देते हैं। यह अधिक अर्थपूर्ण है। –

11

डीओएम केवल स्टाइल तत्वों के उद्देश्य के लिए मौजूद नहीं है - तत्वों को भी आमतौर पर जावास्क्रिप्ट के माध्यम से छेड़छाड़ की जा सकती है, और आमतौर पर आईडी द्वारा तत्वों का चयन कक्षा द्वारा चयन करने से कहीं अधिक कुशल है।

3

यह tizag आलेख इसे बेहतर समझा सकता है। एचटीएमएल में प्रत्येक मानक में, class और id में अलग-अलग फ़ंक्शन हैं। उदाहरण के लिए, एक अद्वितीय तत्व को इंगित करने के लिए, id (आमतौर पर) केवल एक बार उपयोग किया जाता है। class तत्वों के समूह को परिभाषित करने के लिए उपयोग किया जाता है (फिर से, आमतौर पर)।

+0

अच्छा लिंक, लेकिन थोड़ा सा उद्धरण/संक्षेप में कृपया। –

+0

श्री बॉल – esqew

2

http://www.w3.org/TR/html401/struct/global.html#adef-class से:

एक शैली पत्रक चयनकर्ता के रूप में:

आईडी गुण HTML में कई भूमिकाओं है।

हाइपरटेक्स्ट लिंक के लिए लक्षित एंकर के रूप में।

किसी स्क्रिप्ट से किसी विशेष तत्व को संदर्भित करने के साधन के रूप में।

घोषित ऑब्जेक्ट तत्व के नाम के रूप में।

उपयोगकर्ता एजेंटों द्वारा सामान्य उद्देश्य प्रसंस्करण के लिए (उदाहरण के लिए HTML पृष्ठों से डेटा निकालने के दौरान फ़ील्ड की पहचान करने के लिए, HTML दस्तावेज़ों को अन्य प्रारूपों में अनुवाद करना आदि)।

दूसरी तरफ वर्ग विशेषता तत्व को एक या अधिक वर्ग नाम असाइन करती है; तत्व इन वर्गों से संबंधित कहा जा सकता है। कई तत्व उदाहरणों से एक वर्ग का नाम साझा किया जा सकता है। क्लास एट्रिब्यूट में एचटीएमएल में कई भूमिकाएं हैं:

स्टाइल शीट चयनकर्ता के रूप में (जब कोई लेखक तत्वों के सेट पर स्टाइल जानकारी असाइन करना चाहता है)।

उपयोगकर्ता एजेंटों द्वारा सामान्य उद्देश्य प्रसंस्करण के लिए।

मैं जब class विशेषता एचटीएमएल कल्पना को जोड़ा गया है के लिए एक संदर्भ को खोजने के लिए नहीं कर पा रहे हैं, लेकिन मैं मुझे याद है कि id फार्म के लिए आगे वापस एक बहुत विशेषता (विशेष रूप से व्यक्तिगत अनुभव से कह सकता हूँ प्रसंस्करण)।

3

कुछ भी जो आप आईडी के साथ कर सकते हैं जो आप कक्षाओं के साथ कर सकते हैं।

असल में नहीं। क्यों है

तो, तुम एक तत्व एक आईडी देना है, यह एक लिंक का लक्ष्य हो सकता है (यह अब पुराने <a name="foo"> तंत्र से अधिक पसंद किया जाता है जैसे, http://www.example.com/page#foo आप id="foo" साथ तत्व को page पर ले जाता है।) तब एक आईडी विशेषता है?

क्योंकि वे पूरी तरह से अलग-अलग उद्देश्यों की सेवा करते हैं। ऊपर दिया गया उदाहरण केवल असंख्य उपयोगों में से एक है जिसके लिए किसी पृष्ठ पर सामग्री के लिए एक अद्वितीय पहचानकर्ता लगाया जा सकता है। अद्वितीय पहचानकर्ता चीजों के बीच संबंधों के लिए महत्वपूर्ण है।

हाँ आईडी अद्वितीय है, लेकिन एक वर्ग अद्वितीय भी हो सकता है ...

हो सकता है ऑपरेटिव वाक्यांश जा रहा है। यदि मैं ब्राउजर को "foo" id के साथ तत्व को देखने के लिए कहता हूं, तो उसे यह तत्व मिलने के बाद यह दिखना बंद कर सकता है। अगर मैं इसे बताता हूं कि मुझे कक्षा "बार" वाले तत्व चाहिए, तो उन्हें ढूंढने के लिए पूरे डोम को खोजना होगा।

+0

एंकर तर्क एक अच्छा है, मैंने इसके बारे में नहीं सोचा था :) + गति मेरे लिए महत्वपूर्ण नहीं लगती है, क्योंकि दस्तावेज़ क्लाइंट के कंप्यूटर पर पार्स हो जाता है – Alex

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