दिलचस्प पोस्ट
IIf () और यदि के बीच प्रदर्शन अंतर एंड्रॉइड के लिए चौड़ाई और ऊंचाई कैसे प्राप्त करें I गिट उथले submodules मैं PHP के preg_match_all () के समान जावास्क्रिप्ट में एक regex के साथ एकाधिक घटनाओं से कैसे मेल कर सकता हूं? ViewModel में कमांड के लिए WPF बाध्यकारी यूआई इवेंट्स ब्राउज़र विंडो को बंद करने से कैसे रोकें? आधार 10 नंबर को किसी भी आधार को एनएटी में कनवर्ट करने का सबसे तेज़ तरीका है? Django डेटाबेस क्वेरी: दिनांक सीमा से वस्तुओं को कैसे फ़िल्टर करें? कैसे जावास्क्रिप्ट के साथ स्क्रीन रिज़ॉल्यूशन का पता लगाने के लिए? मुझे अपने यूआरएल में पिछली स्लैश का उपयोग कब करना चाहिए? सी में, मुझे एक टेक्स्ट फ़ाइल कैसे पढ़नी चाहिए और सभी स्ट्रिंग प्रिंट करना चाहिए नि: शुल्क कैसे मुक्त है पता है कि कैसे? वेबफॉर्म्स UnobtrusiveValidationMode को 'jquery' के लिए एक ScriptResourceMapping की आवश्यकता है कृपया एक जेपीआरआरससोर्समैपिंग जेक्जरी (केस-संवेदी) नाम दें JLabel में हाइपरलिंक कैसे जोड़ें छवि के माध्यम से परिपत्र में xml

document.all बनाम document.getElementById

आप document.all उपयोग कब करना चाहिए। बनाम document.getElementById ?

वेब के समाधान से एकत्रित समाधान "document.all बनाम document.getElementById"

document.all W3C मानक के लिए एक स्वामित्व माइक्रोसॉफ्ट एक्सटेंशन है

getElementById() मानक है – इसका उपयोग करें

हालांकि, विचार करें कि jQuery के जरिए जेएस लाइब्रेरी का उपयोग करना आसान है। उदाहरण के लिए, $("#id") getElementById() लिए jQuery बराबर है इसके अलावा, आप केवल CSS3 चयनकर्ताओं से ज्यादा उपयोग कर सकते हैं।

document.all बहुत बूढ़ा है, आपको इसे अब और उपयोग करने की आवश्यकता नहीं है ।

निकोलस झाक के उद्धरण के लिए:

उदाहरण के लिए, जब DOM छोटा था, सभी ब्राउज़र समर्थित getElementById () नहीं थे, और इसलिए बहुत सारे कोड थे जो इस तरह दिखते थे:

 if(document.getElementById){ //DOM element = document.getElementById(id); } else if (document.all) { //IE element = document.all[id]; } else if (document.layers){ //Netscape < 6 element = document.layers[id]; } 

दरअसल, document.all केवल document.all लिए कम से कम तुलनीय है। GetElementById । आप दूसरे के स्थान पर एक का उपयोग नहीं करेंगे, वे वही बातें वापस नहीं करते हैं

यदि आप ब्राउज़र क्षमताओं के माध्यम से फ़िल्टर करने का प्रयास कर रहे थे तो आप उन्हें मार्सेल कोर्पेल के जवाब में इसका इस्तेमाल कर सकते हैं:

 if(document.getElementById){ //DOM element = document.getElementById(id); } else if (document.all) { //IE element = document.all[id]; } else if (document.layers){ //Netscape < 6 element = document.layers[id]; } 

लेकिन, कार्यात्मक रूप से, document.getElementsByTagName('*') . document.getElementsByTagName('*') document.all बराबर है।

उदाहरण के लिए, यदि आप वास्तव में एक पृष्ठ पर सभी तत्वों की जांच करने के लिए document.all का उपयोग करने जा रहे थे, तो इस तरह से:

 var j = document.all.length; for(var i = 0; i < j; i++){ alert("Page element["+i+"] has tagName:"+document.all(i).tagName); } 

आप इसके बजाय document.getElementsByTagName('*') उपयोग करेंगे:

 var k = document.getElementsByTagName("*"); var j = k.length; for (var i = 0; i < j; i++){ alert("Page element["+i+"] has tagName:"+k[i].tagName); } 

document.all () DOM तत्वों तक पहुंचने का एक गैर-मानक तरीका है। इसे कुछ ब्राउज़रों से नापसंद किया गया है यह आपको आपके दस्तावेज़ पर सभी उप तत्वों तक पहुंच देता है।

document.getElementById () एक मानक और पूरी तरह से समर्थित है। दस्तावेज़ पर प्रत्येक तत्व का एक अद्वितीय आईडी है

यदि आपके पास है:

 <div id="testing"></div> 

का उपयोग करते हुए

 document.getElementById("testing"); 

उस विशिष्ट डिवेल तक पहुंच होगी

document.querySelectorAll (और इसके document.querySelector() सिलेक्टर document.querySelector() संस्करण जो पहले पाया गया तत्व देता है) बहुत अधिक शक्तिशाली है। आप आसानी से कर सकते हैं:

  • document.querySelectorAll("*") साथ एक पूरा संग्रह प्राप्त करें। खोजकर्ता चयनकर्ता document.querySelectorAll("*") , प्रभावी रूप से गैर-मानक document.all नकल। सभी संपत्ति;
  • document.querySelector("#your-id") , प्रभावी ढंग से document.getElementById() संपादन करना .getElementById document.getElementById() फ़ंक्शन;
  • document.querySelectorAll(".your-class") , प्रभावी रूप से document.getElementsByClassName() संपादन करना .getElementsByClassName document.getElementsByClassName() फ़ंक्शन;
  • document.querySelectorAll("form") बजाय document.querySelectorAll("form") उपयोग document.forms , और document.querySelectorAll("a") बजाय document.querySelectorAll("a") ;
  • और किसी भी अधिक जटिल डोम क्वेरी (किसी भी उपलब्ध सीएसएस चयनकर्ता का उपयोग करके) को निष्पादित करते हैं जो अन्य दस्तावेज निर्माण के साथ कवर नहीं किए जा सकते हैं।

एकीकृत क्वेरी एपीआई का रास्ता तय करना है यहां तक ​​कि अगर document.all मानक में होगा, यह बस असुविधाजनक है

और document.all आईई 11 से समर्थित नहीं होगा!

http://msdn.microsoft.com/en-us/library/ie/ms537434(v=vs.85).aspx

विशेष रूप से, document.all all को IE4 के लिए पेश किया गया था इससे पहले कि document.getElementById .getElementById शुरू किया गया था।

इसलिए, document.all की उपस्थिति का अर्थ है कि कोड IE4 का समर्थन करना है या IE4 के रूप में ब्राउज़र की पहचान करने की कोशिश कर रहा है (हालांकि यह ओपेरा हो सकता था), या जिस व्यक्ति ने लिखा है (या कॉपी और चिपकाया) कोड था नवीनतम पर

अत्यधिक संभावना नहीं होने वाली घटना में आपको आईई 4 का समर्थन करने की जरूरत है, तो आपको document.all आवश्यकता document.all (या एक पुस्तकालय जो इन प्राचीन ईईएस चश्मा हैं)।