2011-08-08 14 views
12

क्या तत्व चुनते समय jQuery हमेशा सरणी लौटाता है (बेशक यदि कम से कम एक तत्व मौजूद है)? उदाहरण:क्या jQuery हमेशा सरणी लौटाता है?

$('#Myelement') 
$('div') 
$('tbody') 

क्या चयनकर्ता आईडी है? क्या होगा यदि चयनकर्ता तत्व है लेकिन केवल एक घटना है?

उत्तर

12

jQuery फ़ंक्शन हमेशा jQuery ऑब्जेक्ट (जो सरणी पर आधारित है) देता है, भले ही चयनकर्ता से मेल खाने वाले कोई तत्व न हों।

इस तरह आप हमेशा एक विधि को कॉल कर सकते हैं जो पाए गए तत्वों को प्रभावित करने के लिए माना जाता है, भले ही कोई तत्व मिलान न हो। यदि jQuery ऑब्जेक्ट में कोई तत्व नहीं है, तो यह कुछ भी नहीं करेगा।

यदि आपको यह जानने की आवश्यकता है कि किसी jQuery ऑब्जेक्ट में कोई तत्व है, तो आप length संपत्ति का उपयोग कर सकते हैं।

+0

मेरी राय में, आपका दूसरा कथन एक अच्छा स्पष्टीकरण नहीं है, क्योंकि ऐसा इसलिए नहीं है कि jQuery एक सरणी देता है। ऐसा इसलिए है क्योंकि $() किसी दिए गए चयनकर्ता से मेल खाने वाले तत्व पाता है, इसलिए आप किसी आईडी वाले तत्व की अपेक्षा नहीं कर सकते हैं, लेकिन नतीजतन कुछ आईडी वाले तत्व होते हैं। –

+0

@ मटियास फिडेमराइज़र: दूसरा पैराग्राफ एक स्पष्टीकरण नहीं है कि विधियां एक सरणी क्यों लौटती हैं, यह एक स्पष्टीकरण है कि आप इसका लाभ कैसे प्राप्त कर सकते हैं। मुझे डर है कि मैं समझ नहीं पा रहा हूं कि आप जो स्पष्टीकरण देते हैं उसके साथ आपका क्या मतलब है। – Guffa

+1

लेकिन जब मैं '$ ('td') [0] .html ('hi') करता हूं, तो यह मुझे अपवाद देता है, यह कहता है कि अनुक्रमणिका में '.html' विधि नहीं है, जिसका अर्थ है सरणी पर तत्व jQuery jQuery ऑब्जेक्ट का हिस्सा नहीं हैं। क्या मै गलत हु? – dpp

1

क्योंकि $([selector])$.find([selector]) का शॉर्टकट की तरह है जो एक तत्व खोज है।

यह jQuery फ़ंक्शंस के साथ निष्पादित कुछ भी एक या अधिक परिणाम लौटा सकता है, क्योंकि आप "परिणाम चुनने" के बजाय खोज रहे हैं।

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