2013-05-22 10 views
5

का उपयोग कर jQuery सरणी से jQuery ऑब्जेक्ट (डीओएम के बजाय) लौटें। मेरे पास <span> एस का एक jQuery सरणी है और मैं उनमें से केवल एक jQuery ऑब्जेक्ट के रूप में प्राप्त करना चाहता हूं ताकि मैं इसके अतिरिक्त विधियों को स्ट्रिंग कर सकूं। कुछ $mySpans[2] (जो एक स्ट्रिंग देता है), या $mySpans.get(2), (जो सीधे डीओएम तत्व देता है)।सूचकांक

मुझे पता है कि यह काम करेगा:

$($mySpans[2]).someJQueryMethod(...); 

... लेकिन यह एक छोटे से बेमानी लगता है। ऐसा करने का सही तरीका क्या है?

उत्तर

9
इस तरह

:

$myspans.eq(2).method(); 
+0

इस विधि को 'eq' नाम क्यों दिया गया था? यह एक भयानक नाम की तरह लगता है। मुझे पता है कि 'इंडेक्स' भी मौजूद है, लेकिन यह तर्कसंगत रूप से 'indexOf' या कुछ – voithos

+1

'eq' या" बराबर "होना चाहिए। सूचकांक कुछ पूरी तरह से अलग करता है। यदि आप अधिक समझ में आता है तो आप अभी भी नियमित सरणी की तरह 'स्लाइस' का उपयोग कर सकते हैं। – elclanrs

+0

'$ myspans" कैसे "2' के बराबर होता है? मैं समझता हूं कि 'इंडेक्स/इंडेक्सऑफ' पारंपरिक रूप से संग्रह को खोजने और किसी आइटम की अनुक्रमणिका को वापस करने के लिए उपयोग किया जाता है, लेकिन अगर 'इंडेक्स' का उपयोग नहीं किया गया था, तो मुझे लगता है कि एक बेहतर नाम मिल सकता है। – voithos

5

jsFiddle Demo

आप eq का उपयोग करना चाहते करने जा रहे हैं। ध्यान दें कि यह उस इंडेक्स पर jQuery ऑब्जेक्ट लिपटे तत्व को वापस कर देगा, इसलिए यदि आपके पास केवल एक मैच है तो आपको 0 का उपयोग करना चाहिए (जो कि 2 का सेट सेट का तीसरा हिस्सा देगा)।

var $thirdMatch = $mySpans.eq(2);//== jQuery object with third match 
var htmlElement = $thirdMatch[0];//== actual dom element 
var matchedHtml = $thirdMatch.html();// call some jQuery API method 

यह आम बात है जब jQuery वस्तुओं के भंडारण पठनीयता प्रयोजनों के लिए एक $variableName उपयोग करने के लिए।

+0

के बराबर है, यही वह है जिसे मैं ढूंढ रहा था। धन्यवाद। – brentonstrine