वास्तव में jquery $ क्या लौटती है?


113

मैंने JQuery के दस्तावेज़ीकरण को पढ़ा है, और जब आप फ़ंक्शन को पास करना चाहते हैं , तो इस पर बहुत ध्यान दिया जाता है, मुझे इस पर कोई जानकारी नहीं है कि यह वास्तव में क्या रिटर्न देता है

विशेष रूप से, क्या यह हमेशा एक सरणी देता है, भले ही केवल एक तत्व पाया जाता हो? क्या कुछ नहीं मिलने पर यह अशक्त हो जाता है? यह कहां प्रलेखित है?

मैं समझता हूं कि रिटर्न के मूल्य पर jquery के तरीकों को लागू किया जा सकता है, लेकिन क्या होगा यदि मैं सीधे रिटर्न मूल्य का उपयोग करना चाहता हूं?

जवाबों:


76

से रिक Strahl के विवरण :

JQuery ऑब्जेक्ट: लिपटा हुआ सेट: चयनकर्ता "लिपटे सेट" के रूप में ज्ञात एक jQuery ऑब्जेक्ट लौटाते हैं, जो एक सरणी जैसी संरचना है जिसमें सभी चयनित DOM तत्व शामिल हैं। आप एक सरणी की तरह लिपटे सेट पर पुनरावृति कर सकते हैं या इंडेक्सर ($ (sel) [0] उदाहरण के लिए) के माध्यम से व्यक्तिगत तत्वों तक पहुंच सकते हैं। इससे भी महत्वपूर्ण बात, आप सभी चयनित तत्वों के खिलाफ jQuery फ़ंक्शंस लागू कर सकते हैं।

कुछ नहीं लौटाने के बारे में:

क्या यह हमेशा एक सरणी लौटाता है? क्या यह अशक्त लौटता है?

आपको हमेशा एक ही चीज़ मिलती है, चाहे उसकी कोई सामग्री हो या न हो, प्रश्न है। आमतौर पर आप इसे .val () (जैसे $ ('myElem'))। Val () का उपयोग करके देख सकते हैं।


1
महान, धन्यवाद ... यह बहुत मददगार है। मुझे नहीं पता था कि एक उपयोगकर्ता-परिभाषित वस्तु एक ही समय में "सरणी-जैसा" हो सकती है - मुझे लगता है कि यह जीनरी की प्रतिभा है।
हार्पो

आपका स्वागत है - मैंने अभी-अभी रिक स्ट्राल के लेख का पूरा लिंक भी जोड़ा है - यह एक अच्छा पढ़ा है।
इयान रॉबिन्सन

14
उस प्रश्न के लिए जिसने मुझे यहां तक ​​पहुंचाया, अर्थात्, आप कैसे जांचते हैं कि कुछ भी पाया गया था, मैं $ (क्वेरी) .length के साथ गया था , जो कि चाल करने के लिए लगता है।
हार्पो

3
सेट की तरह एक सरणी क्या है .... यह एक सरणी या एक वस्तु है या? ... क्या हम सटीक हो सकते हैं?

26

यह एक सरणी नहीं लौटाता है, यह एक jQuery वस्तु देता है। JQuery ऑब्जेक्ट वह है जिसमें सभी विशेष jQuery विधियाँ शामिल हैं।

यह कभी भी अशक्त या अन्य प्रकार से नहीं लौटता है। यदि एक तत्व पाया जाता है, तो jQuery ऑब्जेक्ट में केवल एक बच्चा होगा। यदि कोई तत्व नहीं मिलते हैं, तो jQuery ऑब्जेक्ट खाली हो जाएगा।


6

JQuery फ़ंक्शन (यानी " $") हमेशा हर उदाहरण में एक jQuery ऑब्जेक्ट देता है।


4
@ थारपो: बिल्कुल नहीं; यह सिर्फ इतना है कि विचाराधीन वस्तुओं का नाम खराब है। "द jQuery ऑब्जेक्ट", उर्फ $बनाम "एक jQuery ऑब्जेक्ट", उर्फ ​​"लिपटे सेट"।
सीन मैकमिलन

5

जैसा कि एक अन्य उत्तरदाता ने उल्लेख किया है, यह हमेशा jQuery वस्तु देता है।

इस ऑब्जेक्ट में हमेशा तत्वों की एक सरणी होती है (भले ही यह एक खाली सरणी हो, या सिर्फ एक ऑब्जेक्ट के साथ एक सरणी हो)।

यदि आप एक सीधे तत्व के रूप में, लौटी हुई वस्तु "सीधे" का उपयोग करना चाहते हैं, तो आप निम्न में से एक कर सकते हैं:

$('selector')[0] // element
$('selector').get(0) // element
$('selector').length // number of elements in the array

3

से jQuery प्रलेखन :

JQuery ऑब्जेक्ट अपने आप में एक सरणी की तरह व्यवहार करता है; इसकी लंबाई संपत्ति है और ऑब्जेक्ट के तत्वों को उनके संख्यात्मक सूचकांक [0] से [लंबाई -1] तक पहुँचा जा सकता है। ध्यान दें कि एक jQuery वस्तु वास्तव में एक जावास्क्रिप्ट ऐरे ऑब्जेक्ट नहीं है, इसलिए इसमें एक सच्चे ऐरे ऑब्जेक्ट के सभी तरीके शामिल नहीं हैं जैसे कि ()।


2

तथ्य यह है कि $ () हमेशा jQuery फ़ंक्शन लौटाता है, आपको श्रृंखला को jQuery फ़ंक्शन कॉल विवेकपूर्ण रूप से करने देता है।


1
पूछना! $()jQuery फ़ंक्शन वापस नहीं करता है, (जो है)$ स्वयं है), लेकिन एक लिपटे सेट को लौटाता है, इस पर उन सभी सहायक विधियों के साथ।
शॉन मैकमिलन

1

Jquery चयनकर्ता mechnism

$("..") , jquery चयनकर्ता, मिलान तत्वों का चयन करने के लिए उपयोग किया जाता है।

प्रतिलाभ की मात्रा

यह हमेशा एक सरणी जैसी jquery वस्तु देता है, जिसमें एक lengthसंपत्ति होती है,

लौटी jquery वस्तु पर कॉल विधि

Jquery के तरीकों को ऑब्जेक्ट पर बुलाया जा सकता है, और उन चयनित तत्वों पर लागू हो सकता है,

अनुक्रमणिका द्वारा मूल तत्व तक पहुँचें

चयनित तत्व, ऑब्जेक्ट की संपत्ति के रूप में संग्रहीत किए जाते हैं, उनकी संपत्ति का नाम सूचकांक संख्या 0 से शुरू होता है,
इस प्रकार इंडेक्स द्वारा एक्सेस किया जा सकता है, 0 से शुरू होता है,
मूल तत्व प्राप्त करने के बाद, आप इसका इलाज कर सकते हैं जैसे कि मिलता है document.getElementXxx()

एक मूल तत्व को एक jquery वस्तु में लपेटें

मूल तत्व प्राप्त करने के बाद, आप इसे एक jquery वस्तु होने के लिए लपेट सकते हैं, कॉल करके $(originalEle),
फिर आप लपेटे गए ऑब्जेक्ट पर jquery विधियों को कॉल कर सकते हैं।


0

फायरबग के अनुसार, यह उन ऑब्जेक्ट्स की एक सरणी देता है जो आपके चयनकर्ता से मेल खाते हैं। लेकिन यह सरणी एक jQuery ऑब्जेक्ट है, जो कि एक साधारण ऐरे से अधिक विधियां हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.