jQuery ट्रेवर्सिंग - end() मेथड
उदाहरण
सभी पैराग्राफ्स चुनें, इन पैराग्राफ्स में span एलिमेंट खोजें, फिर इन्हें पैराग्राफ्स में वापस लाएं और पैराग्राफ्स को दो पिक्सल का लाल किनारा दें:
$("p").find("span").end().css("border", "2px red solid");
परिभाषा और उपयोग
end() मेथड वर्तमान चेन में सबसे नजदीकी फिल्टरिंग ऑपरेशन को समाप्त करता है और मेल खाने वाले एलिमेंट सेट को पहले की स्थिति में वापस ला देता है。
व्याकरण
.end()
विस्तृत स्पष्टीकरण
अधिकांश jQuery का ट्रेवर्सिंग मेथड होगा जो एक jQuery ऑब्जैक्ट इंस्टेंस का काम करेगा और नए डॉम एलिमेंट सेट का नया ऑब्जैक्ट बना देगा। जब यह घटना होती है तो नए एलिमेंट सेट को ऑब्जैक्ट में बनी स्टैक में डालना चाहिए। हर एक सफल फिल्टरिंग मेथड कॉल करने पर नए एलिमेंट को स्टैक में डाला जाएगा। अगर हम पुराने एलिमेंट सेट की जरूरत है, तो end() का उपयोग करके स्टैक से नई सेट को बाहर निकाल सकते हैं।
संदर्भ में, पृष्ठभूमि में एक जोड़ा बहुत छोटी सूची है:
<ul class="first"> <li class="foo">सूची एलेमेंट 1</li> <li>सूची एलेमेंट 2</li> <li class="bar">सूची एलेमेंट 3</li> </ul> <ul class="second"> <li class="foo">सूची एलेमेंट 1</li> <li>सूची एलेमेंट 2</li> <li class="bar">सूची एलेमेंट 3</li> </ul>
उदाहरण 1
मुख्य रूप से jQuery के चिन्हकोश श्रृंखला गुण (कमांड चिन्हकोश) का उपयोग करते समय, jQuery का अधिक उपयोगी होता है। अगर चिन्हकोश श्रृंखला का उपयोग नहीं किया जाता, तो हम सामान्यतया पहले के ऑब्जैक्ट को वेरियबल नाम के द्वारा बुलाते हैं, इससे हम अपने स्टैक को नहीं काम करना पड़ता है। हालांकि, end() के माध्यम से, हम सभी विधि बुलावूं को एक साथ जोड़ सकते हैं:
$('ul.first').find('.foo').css('background-color', 'red') .end().find('.bar').css('background-color', 'green');
यह कमांड चिन्हकोश पहली सूची में वर्ग नाम foo के प्रोजेक्ट को खोजता है और उनका पृष्ठभूमि रंग लाल करता है। end() विधि ऑब्जैक्ट को find() को बुलाने से पहले की स्थिति में वापस करता है, इसलिए दूसरा find() <ul class="first"> के अंदर '.bar' को खोजता है, न कि सूची के <li class="foo"> में, और मेल खाने वाले एलेमेंट का पृष्ठभूमि रंग हरा करता है। अंतिम परिणाम में पहली सूची के प्रोजेक्ट 1 और प्रोजेक्ट 3 का पृष्ठभूमि रंग रंगीत होता है, और दूसरी सूची के प्रोजेक्ट में कोई परिवर्तन नहीं होता है。
उदाहरण 2
यह लंबी jQuery बाइटरेन्स चिन्हकोश को संरचनात्मक कोड ब्लॉक में दिखाया जा सकता है, फ़िल्टर विधि अंतर्निहित कोड ब्लॉक खोलती है, और end() विधि कोड ब्लॉक बंद करने के लिए उपयोग की जाती है:
$('ul.first').find('.foo') .css('background-color', 'red') .end().find('.bar') .css('background-color', 'green') .end();
अंतिम में यह end() अनिवार्य नहीं है क्योंकि हम बाद में इस jQuery ऑब्जैक्ट को फेंक देंगे। हालांकि, इस तरह से कोड लिखने के लिए, end() दृश्यतापूर्ण संतुलन और कोड को सुव्यवस्थित करने का भाव प्रदान करता है, कम से कम डेवलपर के लिए अधिक आसान पढ़ने के लिए, लेकिन अतिरिक्त बुलावूं के कारण प्रदर्शन नुकसान होता है।