jQuery में, चयनकर्ता $ ('[id = foo]')$ ('# foo') से कम कुशल है?
उत्तर
आसान व सरल उपाय: हाँ!
लम्बी कहानी (अभी भी वास्तव में कम)
$('[id=foo]')
जबकि
$('#foo')
सीधे
getElementById
कॉल तत्व का चयन करने कड़ाके की धूप (सीएसएस क्वेरी इंजन) का उपयोग करता है।
एक बहुत लंबा कहानी है के लिए, यहाँ हम चले: $('[id=foo]')
जो सार्वभौमिक चयनकर्ता का उपयोग करता $('*:[id=foo]')
के लिए एक पर्याय है। इसका मतलब है, यह आपके मार्कअप के भीतर सभी नोड्स से पूछताछ करता है और फिर उनमें से कौन सा id === foo
(जो उम्मीद है कि केवल एक तत्व, आईडी = अद्वितीय) से मेल खाता है। बेशक, महंगा, बहुत महंगा है। और यही कारण है कि आपने कभी कभी इस तरह के चयनकर्ता को कभी नहीं लिखना चाहिए! हमेशा यदि संभव हो तो इसे पूरी तरह योग्य बनाएं, जैसे $('span:[id=foo]')
हाँ। `$ है -
jQuery में सबसे तेजी से चयनकर्ता आईडी चयनकर्ता $ ('# foo'), क्योंकि यह एक देशी JavaScript विधि करने के लिए सीधे नक्शे, getElementById() के लिए आप तो JANDY
- 1. var foo = foo || चेतावनी (foo);
- 2. int foo = foo
- 3. क्यों .foo a: link, .foo a: विज़िट {} चयनकर्ता ओवरराइड करें: होवर, ए: सक्रिय {} सीएसएस में चयनकर्ता?
- 4. "foo"
- 5. jQuery $ .प्रत्येक (आगमन, foo) बनाम $ (आगमन) .प्रत्येक (foo)
- 6. जो अधिक कुशल है:। Parent()। Parent()। Parent() ~ या ~ माता-पिता ("। Foo") ~ या ~ निकटतम ("। Foo")
- 7. मेरे $ Foo एटीएल समाधान में ($ Foo) पीएस प्रोजेक्ट क्या है?
- 8. इसका क्या अर्थ है? int foo = foo + 4;
- 9. क्या [foo] {...} कैप्चर और [foo] {...} कैप्चर किया गया है यदि 'foo' संदर्भ चर है?
- 10. os.environ ['foo'] कब os.getenv ('foo') से मेल नहीं खाता होगा?
- 11. $ ("# foo .bar") और $ ("। Bar", "#foo") के प्रदर्शन की तुलना में
- 12. "x && foo()" क्या है?
- 13. क्यों "foo" .toString() toString.call ("foo") के समान नहीं है?
- 14. jQuery आईडी चयनकर्ता ("#id") ऐरे
- 15. "#if Foo - 0 == 0" और "#if परिभाषित (Foo) और& Foo == 0" के बीच क्या अंतर है?
- 16. जब मैं/foo या/foo/पूछता हूं तो अमेज़ॅन एस 3 स्वचालित रूप से /foo/index.html क्यों नहीं देता है?
- 17. svn: मौजूदा dierctory <foo> के यूआरएल <foo> अपेक्षित यूआरएल <foo>
- 18. foo (& nil) foo (और "proc नहीं") से अलग तरीके से कैसे व्यवहार करता है?
- 19. कमांड प्रतिस्थापन $ (foo) bashism है?
- 20. @synthesize foo = _foo क्या है?
- 21. सी ++ पॉलिमॉर्फिज्म ((एक्स *) वाई) -> foo() बनाम ((एक्स) * वाई) .foo()
- 22. आर: apt-get install r-cran-foo बनाम install.packages ("foo")
- 23. PostgreSQL स्तंभ 'foo'
- 24. @ManyToMany (mappedBy = "foo")
- 25. "foo <T>" से "स्थिरांक foo <const T>" में कनवर्ट कर रहा - सी ++
- 26. क्या सी ++ या सी में foo (शून्य) और foo() के बीच कोई अंतर है?
- 27. क्यों ("foo" === नया स्ट्रिंग ("foo")) जावास्क्रिप्ट में झूठे का मूल्यांकन करता है?
- 28. <foo*> से अधिक ग्लोब ('foo *') के तुलनात्मक फायदे क्या हैं?
- 29. foo.setVisibility (View.GONE) और parent.removeView (foo)
- 30. jQuery चयनकर्ता: नाम
आह यहाँ एक उप सवाल यह है कि ('अवधि: [id = foo]') '' $ (span # foo) 'या एक अलग चयनकर्ता के लिए बस लम्बाई? – HurnsMobile
@ हर्नमोबाइल: बिलकुल नहीं। '$ ('काल [id = foo]')'। मैं वास्तव में यहां jQuery इनिट कोड पर एक नज़र डालने की सिफारिश करता हूं। jQuery 'getElementById' या 'getElementsByTagName' की सीधी कॉल के लिए कुछ चयनकर्ता अभिव्यक्तियों को पार्स करता है, मुझे लगता है कि' $ (span # foo)' उनमें से एक है। तो यह निश्चित रूप से '$ ('अवधि: [id = foo]') से तेज़ है। वह अभिव्यक्ति Sizzle में जाएगी और यह स्पष्ट रूप से ऊपर उल्लिखित तरीकों में से एक से अधिक समय लेता है। – jAndy
बहुत जानकारीपूर्ण, बहुत बहुत धन्यवाद। आईडी को लक्षित करने के लिए $ ("# foo") के अलावा कुछ का उपयोग करने पर विचार करने का कारण यह है कि जिस आईडी को मैं लक्षित कर रहा था उसमें एक अवधि थी, जो स्पष्ट रूप से समस्याग्रस्त है क्योंकि jQuery इसे आईडी और कक्षा के रूप में समझता है। तो $ ("[id = address.State]" का उपयोग करके), उदाहरण के लिए, मैं इस मुद्दे को हल कर सकता हूं। इसके चारों ओर जाने का एक और तरीका है कि इस अवधि से बचने के लिए $ ("# पता \\। राज्य"), लेकिन मैंने सोचा कि डबल एस्केप कम पठनीय हो सकता है। हालांकि, आपके द्वारा बताए गए दक्षता हानि को देखते हुए, मैं शायद वैसे भी इसका उपयोग करूंगा। – jbyrd