दिलचस्प पोस्ट
सी # यूटीएफ -8 से आईएसओ -885 9-1 (लैटिन 1) एच से स्ट्रिंग कन्वर्ट करें मुख्य () विधि का उपयोग किए बिना कंसोल पर संदेश प्रिंट करना जावा – अंगूठी बफर एक ही लाइन पर दो इनलाइन-ब्लॉक बाएं और दाएं संरेखित करें आईआईएस में यूआरएल पथ को कैसे पुनर्निर्देशित करना है? कैसे प्रोग्रामेटिक रूप से स्थानांतरित, प्रतिलिपि और एसडी पर फाइलों और निर्देशिका को हटाएं? बफ़्फ़र्ड रीडर और सिस्टम एक्सेलेरोमीटर डेटा शोर फ़िल्टरिंग Numpy array में निकटतम मान ढूंढें कंपाइलर त्रुटि: अस्पष्ट कॉल करने के लिए संदर्भ जेपीए और सीतनिद्रा में होना के साथ यूटीसी समय क्षेत्र में दिनांक / समय और टाइमस्टैम्प को कैसे स्टोर किया जाए MySQL इंजेक्शन और क्रॉस साइट स्क्रिप्टिंग से बचाव करने का सर्वोत्तम तरीका छपाई संवाद बंद होने के बाद विंडो स्वचालित रूप से बंद करें मैक ओएसएक्स 10.9 पर टर्मिनल में काम करने के लिए उपयुक्त क्यों नहीं है? रुबी में स्ट्रिंग बनाने पर, फावल ऑपरेटर (<<) प्लस-इक्बाल (+ =) को पसंद क्यों किया जाता है?

एक ही आईडी वाला कई तत्व एक सीएसएस आईडी चयनकर्ता को जवाब देते हैं

क्या एक पृष्ठ में कई तत्व समान आईडी देना सुरक्षित है? उदाहरण के लिए यह अक्सर होता है, जब कुछ jquery प्लगइन्स का उपयोग करते समय, जब आप दो या दो से ज्यादा कुछ स्लाइडर या गैलरी चलाते हैं हमें पता है, डेवलपर्स एचटीएमएल कंटेनर को कुछ आईडी देना पसंद करते हैं ताकि स्क्रिप्ट तेजी से काम करे।

आइए w3.org दस्तावेज़ीकरण पढ़ें:

विशेष प्रकार की विशेषताओं का क्या गुण है, यह है कि दो विशेषताओं के समान मूल्य नहीं हो सकते हैं; दस्तावेज़ भाषा जो भी हो, उसका तत्व विशिष्ट रूप से पहचानने के लिए एक आईडी विशेषता का उपयोग किया जा सकता है

लेकिन समान आईडी वाले 2 तत्वों के साथ अगले उदाहरण सभी ब्राउज़रों में ठीक काम करता है, हालांकि यह मान्य नहीं है:

#red { color: red; } 
 <p id="red">I am a red text.</p> <p id="red">I am a red text too.</p> 

क्या कोई इस अजीब स्थिति को समझा सकता है?

वेब के समाधान से एकत्रित समाधान "एक ही आईडी वाला कई तत्व एक सीएसएस आईडी चयनकर्ता को जवाब देते हैं"

ब्राउज़र्स हमेशा "चुपचाप विफल" करने का प्रयास करते हैं इसका क्या मतलब यह है कि भले ही आपका HTML अमान्य है, ब्राउज़र यह अनुमान लगाने का प्रयास करेगा कि आपका इरादा क्या था, और उसके अनुसार उसे संभालना।

हालांकि, युक्ति से विचलित होने से कुछ बहुत अप्रभावित दुष्प्रभाव उत्पन्न हो सकते हैं।

उदाहरण के लिए:

 document.getElementById('red'); 

केवल आपको पहले ही मिलेगा

आपको अपने पेज को उन सभी ब्राउज़रों में भी परीक्षण करना होगा जो आपके उपयोगकर्ता उपयोग कर सकते हैं, यह सुनिश्चित करने के लिए कि आपका कोड उद्देश्य से काम करता है आप सिर्फ यह नहीं मान सकते कि यह काम करेगा

संक्षेप में: ऐसा मत करो! यदि आपको एक ही सीएसएस के साथ कई तत्वों को लक्षित करने की आवश्यकता है, तो एक वर्ग का नाम लिखें। इसी के लिए उन्हें तैयार किया गया था …


यह कहने के बाद; यदि आपको वास्तव में एक ही आईडी के साथ कई तत्वों का चयन करना है, तो एक विशेषता चयनकर्ता का उपयोग करें:

 document.querySelectorAll('p[id="red"]'); 

हालांकि ध्यान दें, यह IE7 और नीचे में काम नहीं करता है …

क्या एक पृष्ठ में कई तत्व समान आईडी देना सुरक्षित है?

जैसा कि आप जानते हैं, यह एक ही पृष्ठ पर एक से अधिक तत्व एक ही आईडी देने के लिए सत्यापन नियमों के खिलाफ है। हालांकि, नियम टूट गए हैं, और एचटीएमएल टैग सूप की दुनिया में, ब्राउज़रों को तोड़ने वाले पेजों के बिना इन टूटे हुए नियमों के लिए खाते हैं, इसलिए आप जो व्यवहार देखते हैं

हालांकि ब्राउज़रों को उसी तरीके से व्यवहार करने के लिए दिखाया गया है, भले ही आप ऐसा करते हों (सौभाग्य से उन स्थितियों के लिए जहां यह मदद नहीं कर सकता है), मैं ऐसा करने के लिए पूरी तरह से "सुरक्षित" नहीं कहूंगा, क्योंकि ऐसा व्यवहार संगत नहीं हो सकता है या विश्वसनीय।

सबसे अच्छा शर्त यह है कि नियमों का ईमानदारी से पालन करें जैसा कि आप कर सकते हैं, और यदि आप बहुत ही अच्छे, अच्छे कारणों से नियमों को तोड़ सकते हैं (और आप लगभग कभी भी ऐसा नहीं करेंगे , तो भी इसका विचार नहीं करें)। अन्यथा, जैसे यूसुफ सिलैर ने कहा , कई तत्वों को वर्गीकृत या समूहबद्ध करने के लिए विशेष रूप से तैयार किए गए वर्गों का उपयोग करें।

क्या कोई इस अजीब स्थिति को समझा सकता है?

एक HTML दस्तावेज़ में आईडी की विशिष्टता को लागू नहीं किया जाता है या सीएसएस द्वारा ग्रहण नहीं किया जाता है; इसके बजाय, चयनकर्ता युक्ति केवल यह कहता है:

एक आईडी चयनकर्ता एक तत्व उदाहरण का प्रतिनिधित्व करता है जिसमें एक पहचानकर्ता होता है जो आईडी चयनकर्ता में पहचानकर्ता से मेल खाता है।

इस वाक्य के दौरान "एक" शब्द के उपयोग की सूचना दें

उस बयान के बाद कुछ उदाहरण उपयोग करता है, जो इसके बजाय "किसी भी" शब्द का उपयोग करता है:

निम्न आईडी चयनकर्ता किसी भी तत्व का प्रतिनिधित्व करता है जिसका ID- टाइप किया गया विशेषता मान "Chapter1" है:

 #chapter1 

निम्नलिखित चयनकर्ता किसी भी तत्व का प्रतिनिधित्व करता है जिसका ID- टाइप किया गया गुण "z98y" मान है

 *#z98y 

एक कंफ़ॉर्मेंट दस्तावेज़ की धारणा अनुभाग (जोर खान) की शुरुआत के निकट चयनकर्ताओं के स्तर के स्तर 3 द्वारा स्पष्ट की गई है:

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

जहां "कन्फॉर्मेंट" एचटीएमएल के अनुरूप नहीं है, सीएसएस नहीं है। ध्यान रखें कि यह टेक्स्ट स्तर 2 स्पेस में मौजूद नहीं था, जो आपके प्रश्न में उद्धृत है।

ध्यान रखें कि जो पाठ उद्धृत किया गया है वह प्रामाणिक नहीं है हालांकि यह कार्यान्वयनकर्ताओं को त्रुटि-निपटने के मामलों को काम करने में मदद करने का एक तरीका है, यह पालन करने के लिए अनिवार्य नियम नहीं है, और वास्तव में, किसी भी कार्यान्वयन को विशिष्टता के उल्लंघन के बिना अलग ढंग से व्यवहार करने के लिए स्वतंत्र है उम्मीद की जा सकती है या संगत व्यवहार क्या हो सकता है इसका लाभ उठाने के लिए अमान्य HTML न लिखें, क्योंकि आप यह गारंटी नहीं दे सकते कि ये व्यवहार इस तरह से बने रहेंगे। किसी भी सीएसएस कार्यान्वयन स्वतंत्र रूप से एक ही आईडी को साझा करने वाले तत्वों को मैच करने के लिए स्वतंत्र है, या फिर उन्हें पूरी तरह से मिलान करना बंद कर देता है, अगर यह तय करता है कि इस नियम को तोड़ने वाले दस्तावेज़ों को कैसे प्रबंधित करना चाहिए।

दूसरे शब्दों में: सिर्फ इसलिए कि आप कर सकते हैं, इसका मतलब यह नहीं है कि आपको चाहिए

यह सरल HTML स्टाइल के साथ काम करता है, लेकिन प्रश्नों के साथ काम नहीं करेगा।

JQuery के एपीआई दस्तावेज़ीकरण से :

प्रत्येक आईडी मान का उपयोग केवल एक दस्तावेज़ में ही किया जाना चाहिए। यदि एक से अधिक तत्व को समान आईडी असाइन किया गया है, तो उस आईडी का उपयोग करने वाली क्वेरी केवल DOM में पहले मिलान किए गए तत्व का चयन करेंगे। इस व्यवहार पर भरोसा नहीं होना चाहिए, हालांकि; समान आईडी का उपयोग करने वाले एक से अधिक तत्व के साथ एक दस्तावेज़ अमान्य है।