2012-12-08 11 views
8

मैं jQuery के लिए नया हूं, और मुझे वस्तुओं के लिए अपनी सरणी नोटेशन को समझने में थोड़ा परेशानी हो रही है। jQuery डॉक्स और this article पढ़ना, ऐसा लगता है कि आप एक वस्तुjQuery ऑब्जेक्ट सरणी नोटेशन

$('.foo')[n]; 

सही तरह कुछ कर रही द्वारा एक चयनकर्ता द्वारा लौटाए में वें आइटम का उल्लेख कर सकते हैं? क्या मुझे टेंडेम में jQuery मैनिपुलेशन/प्रभाव फ़ंक्शंस का उपयोग करने में सक्षम होना चाहिए? की तरह (यह मेरे लिए काम नहीं कर रहा)

$('.foo')[0].hide(); 

मैं भी कोशिश की है, कोई लाभ नहीं हुआ कुछ:

var arr = $('.foo').get(); 
arr[0].hide(); 

वहाँ कुछ मेरी वाक्य रचना में गलत है? मैं जो करने की कोशिश कर रहा हूं उसे करने का सबसे अच्छा तरीका क्या है?

धन्यवाद!

उत्तर

17

[0] सरणी नोटेशन और .get() method दोनों jQuery ऑब्जेक्ट के भीतर एक DOM तत्व का संदर्भ लौटाते हैं, और आप DOM तत्वों पर jQuery विधियों का उपयोग नहीं कर सकते हैं।

क्योंकि यह एक नई jQuery ऑब्जेक्ट के बजाय का प्रयास करें eq() method,:

$('.foo').eq(0).hide(); 

भी ध्यान रखें कि सरणी संकेतन या .get() उपयोग कर लेने के एक डोम तत्व के लिए संदर्भ प्राप्त करने के लिए मतलब है कि आप तो प्रत्यक्ष प्राप्त कर सकते हैं डोम तत्व के गुणों के लिए उपयोग, जैसे:

var firstElId = $('.foo')[0].id; 

... एक दूसरे नोट के साथ कि $('.foo')[0] हो जाएगा undefined और चयनकर्ता से मेल खाने वाले कोई तत्व नहीं होने परत्रुटि देगा।

+0

धन्यवाद: आप एक jQuery वस्तु के लिए इसे वापस कन्वर्ट करने के लिए)

var bar = $('.foo')[n]; var $bar = $(bar); $bar.hide(); 

.hide तरह के तरीकों (उपयोग करने के लिए या सिर्फ jQuery के eq() विधि का उपयोग की आवश्यकता होगी! यही वही है जो मुझे जानने की जरूरत है। –

6

जब आप किसी jQuery ऑब्जेक्ट को सरणी के रूप में संदर्भित करते हैं तो आपको एक DOM तत्व वापस मिलता है।

var bar = $('.foo').eq(n); 
bar.hide(); 
+0

पहला उदाहरण काम करता है, लेकिन यह करने के लिए यह एक बहुत भारी तरीका है। दूसरे उदाहरण में '.eq() 'का उपयोग करने के लिए बेहतर है। – saluce

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