2012-01-29 10 views
20

मैं jquery चर को गठबंधन करने का एक तरीका ढूंढ रहा हूं। संबंधित प्रश्नों को देखते हुए, कोई भी ऐसा नहीं कर रहा है जो मैं करना चाहता हूं।एक चयनकर्ता में jquery चर जोड़ो?

$("body, div, p") चयनकर्ताओं द्वारा संयोजन की एक विधि है, लेकिन एक चर के लिए चयनकर्ता असाइन करने के बाद, आप उन्हें एक समान तरीके से कैसे जोड़ते हैं?

यहां एक विधि है जिसकी मैंने कोशिश की, लेकिन इसे काम करने के लिए नहीं मिला। मैंने उन्हें एक सरणी में डालने की कोशिश की (केवल $ शरीर से पहले और $ पी के बाद ब्रैकेट जोड़कर)।

$body = $("body"); 
$div = $("div"); 
$p = $("p"); 
$mixed = $($body, $div, $p); 
// $mixed = $("body, div, p"); is NOT what I am looking for 

मेरे वास्तविक स्क्रिप्ट में मैं कुछ <select> आदानों चर करने के लिए सौंपा मिल गया है। मैं उन्हें समूहों में रखना चाहता हूं, इसलिए कहें कि मेरे पास <select> है जिसमें "फल" है और दूसरा "VEGETABLES" है, मैं उन्हें "PRODUCE" नामक एक jquery चर में डाल सकता हूं। फिर अगर मुझे दोनों में से कुछ करने की ज़रूरत है, तो मैं इसके बजाय उपज का उपयोग करता हूं।

... हालांकि यह चीजों को करने का एक बेवकूफ तरीका हो सकता है।

+0

Whhy आप '$ का उपयोग नहीं करते (" का चयन करें ")' के बाद से आपके दोनों तत्वों का चयन कर रहे हैं? – Mike

+1

यह चीजों को करने के लिए सिर्फ एक बेवकूफ तरीका हो सकता है, वास्तव में ... ** =) ** – gdoron

+0

मैं उन लोगों को चुनना चाहता हूं जिन्हें एक साथ समूहीकृत किया जाना चाहिए। मुझे लगता है कि यह उन्हें सभी आईडी देने के साथ किया जा सकता है, लेकिन चूंकि वे प्रोग्रामिक रूप से जोड़े जाते हैं, इसलिए मैं उन्हें किसी विशेषताओं का उपयोग किए बिना जोड़ना पसंद करूंगा। –

उत्तर

42

शायद आप .add() देख रहे हैं?

$mixed = $body.add($div).add($p); 
+0

आपको मुझसे मजाक करना होगा। मैंने इसे इतने लंबे समय तक देखा है ... मुझे नहीं लगता था कि यह अस्तित्व में है। मैंने कभी भी "एड" शब्द की तलाश करने के बारे में सोचा नहीं था। ("संयोजन" पृष्ठ पर भी नहीं मिला है, एफएमएल) –

+0

@ राडग - अगर यह सही था तो यह जवाब स्वीकार करना सुनिश्चित करें;)। –

+0

10 मिनट प्रतीक्षा टाइमर! –

0

मैं भी ऐसा कुछ ढूंढ रहा था। मेरे मामले में मैंने कुछ वस्तुओं को एक सामान्य कार्य में पारित किया था और कुछ स्मृति में बनाए गए थे और मैं सभी ऑब्जेक्ट्स पर एक ही क्लिक ईवेंट को लागू करना चाहता था। अंत में मैं जेम्स के अतिरिक्त समाधान के साथ गया लेकिन सोचा कि मैं एक और विकल्प साझा करूंगा।

यदि आप ऑब्जेक्ट को सरणी में डालते हैं तो आप प्रत्येक इटरेटर को उन पर कार्रवाई करने के लिए उपयोग कर सकते हैं।

[$body, $div, $p].each(function(i,e) { e.DoSomething(); }); 

इस वाक्य रचना लंबी है और आप एक पुन: प्रयोज्य $ मिश्रित वस्तु नहीं मिलता है, लेकिन वहाँ कुछ परिदृश्यों जहां इस उपयोगी है हो सकता है।

2

मेरे लिए, यह करने के लिए jQuery 1.10.2 में ठीक काम करता है बस jQuery निर्माता में पार करने से पहले शाब्दिक एक सरणी में तत्वों गठबंधन: $mixed = $([$body, $div, $p]);

+0

जोड़ा है, मेरे लिए काम नहीं कर रहा है। संस्करण 1.11 – Boykodev

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