2012-11-27 9 views
6

तो, मैं कुछ जावास्क्रिप्ट/jQuery है कि इस तरह दिखता है:क्या एक jQuery तत्व को एक var कारण में सहेजने के लिए तत्व को फिर से मांगा जा सकता है?

var $foo = $('#bar'); 
$foo.hide(); 

मैं इस धारणा है कि jQuery दिया चयनकर्ता पर चल रही है, और var $foo के परिणामस्वरूप DOM एलीमेंट की बचत होती है के तहत काम कर रहा है ... जो, जहां तक ​​मैं देख सकता हूं सच है।

हालांकि, $foo.hide() का आह्वान करते हुए jQuery को #bar तत्व फिर से खोजना है?

+0

कोई नहीं ..... –

+0

यह सर्वोत्तम प्रथाओं माना जाता है। यदि आप पुन: उपयोग करने की योजना बनाते हैं तो आपको लगभग हमेशा jQuery ऑब्जेक्ट का संदर्भ सहेजना चाहिए। – troynt

उत्तर

8

नहीं, यह नहीं है, जब $ (elem) कहा जाता है तो संदर्भ दिया जाता है। यही कारण है कि तत्व के संदर्भ को संग्रहीत करने के लिए var का उपयोग किया जाता है। var पर संदर्भों को संग्रहीत करना हमेशा सर्वोत्तम अभ्यास है, इसलिए अगली बार कोड का उपयोग किया जाता है, पुराना संदर्भ उपयोग किया जाता है, और फिर डोम को खोजने की आवश्यकता नहीं होती है।

//reference 
var a = $('#id'); 

//use 
a.hide(); 

//same reference, use again 
a.show(); 
+0

हालांकि, प्रदान किया गया कोड एंड्रयू कोड मान्य है। $ फ़ंक्शन jQuery ऑब्जेक्ट देता है जिसमें DOM तत्व का संदर्भ होता है और किसी भी अन्य बिंदु पर इसका उपयोग किया जा सकता है। यदि आपके पास 'var foo = $ (" bar ") है। छुपाएं; foo.show(); 'परिणाम एक ** दृश्य ** होगा। – Ash

+0

हां यह मान्य कोड है :-) –

1

मेरी समझ से, एक वर के रूप में jQuery वस्तु की स्थापना, वस्तु कैश, और इसलिए यह jQuery वस्तु हर आप इसका इस्तेमाल करते somehting पर अमल करने की जरूरत है फिर से बनाना नहीं होंगे।

कुछ लेख इस बारे में, here's the first one I found off google

मुझे लगता है कि हालांकि $('#bar') document.getElementById ('बार') ऐसा है, तो ज्यादा नहीं निर्माण और इसलिए काफी तेजी से करने के लिए सीधे संदर्भित करता है, लेकिन यह तेज है आप वस्तुओं की एक सरणी है जब । $('.class tagType')

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

  • कोई संबंधित समस्या नहीं^_^