2010-08-15 13 views
51

मैं एक class में प्रत्येक तत्व की id प्राप्त करने के लिए इस कोशिश कर रहा हूँ, लेकिन इसके बजाय इसे अलग वर्ग के प्रत्येक नाम को चेतावनी है, इसलिए class="test" के लिए यह चेतावनी है: t, e, s, t ... कैसे प्राप्त करने के लिए पर कोई सलाह प्रत्येक तत्व id जो class का हिस्सा है, की सराहना की जाती है, क्योंकि मुझे यह पता लगाना प्रतीत नहीं होता .. धन्यवाद।jQuery, .each का उपयोग कर कक्षा में प्रत्येक तत्व की आईडी प्राप्त करें?

$.each('test', function() { 
    alert(this) 
}); 

उत्तर

120

इस प्रयास करें, वर्ग के वास्तविक नाम से .myClassName की जगह (लेकिन शुरुआत में अवधि रखने के लिए)।

$('.myClassName').each(function() { 
    alert(this.id); 
}); 

तो यदि कक्षा "परीक्षण" है, तो आप $('.test').each(func... करेंगे।

यह .each() का विशिष्ट रूप है जो एक jQuery ऑब्जेक्ट पर पुनरावृत्त करता है।

जिस फ़ॉर्म का आप उपयोग कर रहे थे संग्रह का प्रकार। तो आप अनिवार्य रूप से वर्णों की एक सरणी t,e,s,t पर पुनरावृत्त कर रहे थे।

का उपयोग करना है कि $.each() की रूप है, आप इस तरह यह करने के लिए की आवश्यकता होगी:

$.each($('.myClassName'), function() { 
    alert(this.id); 
}); 

... जो ऊपर के उदाहरण के रूप में एक ही परिणाम होगा।

+1

धन्यवाद .. अब महान काम करता है – Rick

+0

@ रिक - आपका स्वागत है। खुशी है यह काम करता है। : ओ) – user113716

22

पैट्रिक dw का उत्तर सही है।

किक्स और गिगल्स के लिए मैंने सोचा कि मैं सभी आईडी की सरणी वापस करने के लिए एक आसान तरीका पोस्ट करूंगा।

var arrayOfIds = $.map($(".myClassName"), function(n, i){ 
    return n.id; 
}); 
alert(arrayOfIds); 
+0

वास्तव में '$ .map()' बहुत अच्छा है अगर कोई ऐरे वांछित है। हालांकि अगर मैं अपनी व्यक्तिगत पूर्वाग्रह व्यक्त कर सकता हूं, तो मैं प्रत्येक पुनरावृत्ति के लिए एक नई jQuery ऑब्जेक्ट बनाने के बजाय 'n.id' करूंगा क्योंकि यह एक अच्छा सौदा अधिक कुशल है। बस सोचा कि मैं इसका जिक्र करूँगा। : ओ) – user113716

+0

आप सही पैट्रिक हैं। अतिरिक्त $() के लिए कोई ज़रूरत नहीं है। मैंने इसे संपादित किया है। – jessegavin

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