.add()

2013-01-31 28 views
24

के साथ कई jQuery ऑब्जेक्ट्स का चयन करें .add() विधि एक समय में एक को जोड़ने के बजाय एक से अधिक ऑब्जेक्ट्स को चुनने की अनुमति देती है?.add()

one.add(two).add(three).add(four).on("click", function() { }); 

निम्नलिखित चर उनके तरीके से सेट होते हैं क्योंकि प्रत्येक में एक अलग कार्य होता है।

var one = $("#1"); 
var two = $("#2"); 
var three = $("#3"); 
var four = $("#4"); 

लेकिन यदि मैं इन सभी तत्वों पर लागू एक अतिरिक्त फ़ंक्शन जोड़ना चाहता हूं तो क्या होगा? क्या मुझे उन्हें एक-एक करके जोड़ना है?

मुझे पता है कि आप उन्हें $("#1,#2,#3,#4") का उपयोग करके सभी का चयन कर सकते हैं, लेकिन मैं उपर्युक्त चर का उपयोग करना चाहता हूं।

+2

बीटीडब्ल्यू: आईडी-घोषणा के लिए पहले अक्षर के रूप में एक संख्या कभी भी एक अच्छा विचार नहीं है ... ;-) – yckart

+2

@yckart उन्हें कभी भी इस तरह नामित नहीं किया जाता है। यह केवल चित्रण के उद्देश्य के लिए है। – Antony

+1

हाँ, मुझे पता है: - * – yckart

उत्तर

27

मैं विशुद्ध रूप से पठनीयता के लिए, इस सरणी प्रक्रिया अपनाते हैं ...

$([one, two, three, four]).each(function() { 
    // your function here 
}); 
4

आप की तरह एक सरणी में उन्हें डाल सकता है इस

var k = [one,two,three,four] 

$.each(k,function(){ 
    $(this).click(function(){ 
    //Function here 
    }); 
}); 
+7

या बस यह करें: '$ (के) .क्लिक (फ़ंक्शन() {...})' –

9

आप एक ही बार में एक से अधिक ऑब्जेक्ट को नहीं जोड़ सकते, उदाहरण के लिए:

var groupThree = one.add(three, five); // will not work as expected 

आप अतिरिक्त वस्तुओं को कैश कर सकते हैं ताकि आपको केवल एक बार जोड़ना होगा - http://jsfiddle.net/X5432/

var one = $("#1"); 
var two = $("#2"); 
var three = $("#3"); 
var four = $("#4"); 
var five = $("#5"); 

var groupOne = one.add(two).add(three).add(four); 
var groupTwo = groupOne.add(five); 

$('#first').click(function(e){ 
    e.preventDefault(); 
    groupOne.css({'background': '#00FF00'}); 
}); 

$('#second').click(function(e){ 
    e.preventDefault(); 
    groupTwo.css({'background': '#FF0000'}); 
}); 

लेकिन मैं सरणी विधि बेहतर लगता है तो यह सिर्फ इस बारे में सोच का एक अलग तरीका है।

+2

यह अच्छा है, आपको इसका उपयोग करके दृष्टिकोण से और भी अधिक लाभ मिल सकता है: 'groupOne.click (function (ई) {}); ' – Werner

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