क्या यह एक और संक्षिप्त तरीके से किया जा सकता है?क्या सरणी में प्रत्येक तत्व के चारों ओर jQuery को लपेटने का कोई त्वरित तरीका है?
var src = $('div');
var dest = [];
for (var i = 0; i < src.length; i++)
dest[i] = $(src[i]);
मैं केवल इस के बारे में सोच सकते हैं, जो अभी भी बहुत वर्बोज़ है:
var dest = [];
$('div').each(function() { dest.push($(this)); });
jQuery कुछ भी इस मामले के लिए बेहतर देता है? मुझे यह नहीं मिल रहा है।
टिप्पणी में आवर्ती कुछ प्रश्नों का समाधान करने के लिए:
src[i]
पहले से ही एक jQuery वस्तु है,jQuery(src[i])
बुला कुछ भी नहीं है।
नहीं, यह किसी भी jQuery रैपिंग के बिना, एक साधारण डोम नोड है।
जिज्ञासा से बाहर, यह बिल्कुल क्यों है?
क्योंकि बाद में मुझे प्रत्येक तत्व के साथ अलग-अलग मिश्रण करने की आवश्यकता होगी। उदाहरण के लिए, मुझे सबसे ऊंचे को खोजने के लिए उन सभी पर जाने की जरूरत है, फिर बाकी को एक ही ऊंचाई पर सेट करें। उसके बाद मुझे अपनी सभी चौड़ाई प्राप्त करने और उस पर आधारित कुछ लेआउटिंग करने की आवश्यकता है (इसलिए प्रत्येक तत्व को अन्य तत्वों की चौड़ाई के आधार पर x xy निर्देशांक प्राप्त होते हैं)। आदि
इन सभी जोड़तोड़ और अधिक आसानी से किया जाता है अगर मैं jQuery द्वारा प्रदान की आशुलिपि कार्यों का उपयोग कर सकते हैं, लेकिन यह है कि इसका मतलब है कि मैं व्यक्तिगत रूप से प्रत्येक तत्व रैप करने के लिए की जरूरत है ($('div')
केवल एक आवरण के आसपास उन सभी को लौटे)। और चूंकि मुझे हर बार कई तत्वों की यात्रा करने की ज़रूरत है, इसलिए मैं उनमें से प्रत्येक को केवल एक बार लपेटकर प्रदर्शन में वृद्धि करना चाहता हूं, हर यात्रा पर नहीं।
'src है [i] 'पहले से ही एक jQuery ऑब्जेक्ट है, 'jQuery (src [i]) को कॉल करना' कुछ भी नहीं करता है। – Barmar
'$ .map ($ ('div'), फ़ंक्शन (वैल, i) {वापसी $ (वैल);}' शायद? –
@ बामार - नहीं, यह एक वेनिला डोम ऑब्जेक्ट है। –