2009-05-24 13 views
62

मैं jQuery में एक ही आईडी के साथ सभी <div> एस चुनने का प्रयास कर रहा हूं। मैं यह कैसे करुं?jQuery में किसी विशेष आईडी के साथ सभी तत्वों का चयन कैसे करें?

मैं इस कोशिश की और यह काम नहीं किया

jQuery('#xx').each(function(ind,obj){ 
     //do stuff; 
}); 
+17

आईडी अद्वितीय होने के लिए हैं। कक्षाओं का प्रयोग करें। –

+22

हर कोई जानता है कि, यहां किसी ने भी अपने प्रश्न का उत्तर नहीं दिया। – Sid

+3

हमेशा एक अद्वितीय आईडी नहीं हो सकता है, कम से कम मैं हमेशा वह बर्दाश्त नहीं कर सकता। खैर, @mydoghasworms [जवाब] [1] सवाल काफी अच्छी तरह से, बिंदु पर है। [1]: http://stackoverflow.com/questions/902839/jquery-select-divs-with-same-id#answer-6744674 – Fr0zenFyr

उत्तर

36

मैं अलग-अलग आईडी का उपयोग करता हूं लेकिन प्रत्येक डीवी को एक ही कक्षा में निर्दिष्ट करता हूं।

<div id="c-1" class="countdown"></div> 
<div id="c-2" class="countdown"></div> 

यह भी ('। उलटी गिनती') jQuery की वापसी के आधार पर आईडी फिर से संगठित करने में सक्षम होने का अतिरिक्त लाभ है। लंबाई


ठीक है क्या के बारे में प्रत्येक के लिए कई वर्गों को जोड़ने उल्टी गिनती करने वाली घड़ी। आईई:

<div class="countdown c-1"></div> 
<div class="countdown c-2"></div> 
<div class="countdown c-1"></div> 

इस तरह आप दोनों दुनिया के सर्वश्रेष्ठ प्राप्त करते हैं। यह दोहराने की अनुमति देता है 'आईडीएस'

+0

Ballasacian: मेरे पास nids 1..n के साथ n काउंटर हैं, इसलिए प्रत्येक के लिए मेरे पास id = c-1, id = c-2 आदि है लेकिन इनमें से कुछ दोहराना है। इसलिए मैं आपकी विधि का उपयोग नहीं कर सकता। और उनके सभी में एक ही वर्ग = 'उलटी गिनती' धन्यवाद – mark

+0

आप इसे दोहराना क्यों चाहेंगे? विशेष रूप से एक आईडी पर जो अद्वितीय होना चाहिए। – Ballsacian1

+0

Ballasacian: धन्यवाद! वह शानदार था! जिस तरह से मैं चाहता हूं काम करता है !! नहीं पता कि मैंने इससे पहले क्यों नहीं सोचा था! – mark

36

आपका दस्तावेज़ एक ही आईडी वाले दो divs शामिल नहीं होना चाहिए। यह invalid HTML है, और नतीजतन, अंतर्निहित डीओएम एपीआई इसका समर्थन नहीं करता है।

HTML standard से:

आईडी = नाम [सीएस] यह विशेषता एक तत्व को आवंटित एक नाम। इस नाम को किसी दस्तावेज़ में अद्वितीय होना चाहिए।

आप या तो प्रत्येक div को अलग-अलग आईडी निर्दिष्ट कर सकते हैं और $('#id1, #id2) का उपयोग करके दोनों का चयन कर सकते हैं। या दोनों तत्वों (उदाहरण के लिए .cls) के लिए एक ही कक्षा असाइन करें, और दोनों का चयन करने के लिए $('.cls') का उपयोग करें।

+1

यह भी ध्यान दिया जाना चाहिए कि अंतर्निहित अधिकांश GetElementById() फ़ंक्शंस jQuery और अन्य पुस्तकालयों ने वास्तविक खोज करने के लिए बुलाया है, किसी दिए गए आईडी से मेल खाने वाले पहले (या यादृच्छिक?) तत्व को वापस करने से इंकार कर दिया है, और इसका समर्थन करने से मैन्युअल रूप से डोम चलना होगा। अमान्य मार्कअप के लिए बस इसके लायक नहीं है! – ironfroggy

+0

इस पोस्ट के बारे में: दिलचस्प बात यह है कि एक जावास्क्रिप्ट फ़ंक्शन प्राप्त होता है एलिमेंट्सबिननाम (xxx) - बहुवचन को ध्यान दें - यह दर्शाता है कि एक ही नाम के साथ एक से अधिक तत्व होने के लिए यह पूरी तरह कानूनी है ... – Jimbo

+1

@Jimbo - True लेकिन मेरा उत्तर वही 'आईडी' वाले तत्वों के बारे में है, न कि' name'। –

2

क्या आप प्रत्येक विशिष्ट टाइमर को एक अद्वितीय सीएसएस क्लास असाइन कर सकते हैं? इस तरह आप सीएसएस कक्षा के लिए चयनकर्ता का उपयोग कर सकते हैं, जो कई div तत्वों के साथ ठीक काम करेगा।

+0

पाउल, नहीं, मैं प्रत्येक टाइमर के लिए एक अद्वितीय कक्षा का उपयोग नहीं कर सकता, क्योंकि मैं उलटी गिनती टाइमर को प्रारंभ करने और स्टाइल करने के लिए सभी टाइमर का चयन करने के लिए कक्षा का उपयोग करता हूं। – mark

+1

** एचटीएमएल ** कक्षा। लोग सीएसएस चयनकर्ताओं के मिलान के लिए लगभग विशेष रूप से कक्षाओं का उपयोग करते हैं, जो उन्हें एक अलग भाषा का हिस्सा नहीं बनाते हैं। – Quentin

1

आप दो div के दो div में अद्वितीय आईडी के साथ लपेटने का प्रयास भी कर सकते हैं। तब $("#div1","#wraper1") द्वारा div का चयन करें और $("#div1","#wraper2")

ये रहा:

<div id="wraper1"> 
<div id="div1"> 
</div> 
<div id="wraper2"> 
<div id="div1"> 
</div> 
371

हालांकि अन्य सही जवाब (जैसे वर्गों का उपयोग के रूप में) यहाँ हैं, देखने का एक शैक्षिक बिंदु यह पाठ्यक्रम संभव है करने के लिए की है से एक ही आईडी के साथ कई divs, और jQuery के साथ उन्हें चुनना संभव है।

जब आप

jQuery("#elemid") 

का उपयोग यह दी गई ID वाला केवल पहला तत्व का चयन करता है।

हालांकि, जब तुम विशेषता (जैसे अपने मामले में आईडी) आधार पर चुनते हैं यह सब मिलान तत्वों देता है, जैसे इतना:

jQuery("[id=elemid]") 

निश्चित रूप से यह किसी भी विशेषता पर चयन के लिए काम करता है, और आप कर सकते थे प्रश्न में टैग निर्दिष्ट करके अपने चयन को और परिष्कृत करें (उदाहरण के लिएआपके मामले में div)

jQuery("div[id=elemid]") 
+119

आप पूछे गए प्रश्न का उत्तर देने वाले अकेले थे। – wcm

+15

यह सही उत्तर है। – d512

+6

कम से कम कोई जानता है कि jQuery में वास्तविक सामग्री कैसे करें ... भगवान! मैं यह जानना मर रहा था, और कुछ भी काम नहीं करता है। मैं बस वर्ग का उपयोग करने के सभी अन्य दृष्टिकोण नहीं ले सकता, मेरे पास पहले से ही एक अलग नौकरी करने के लिए है। जय @mydoghasworms !! – Fr0zenFyr

2

पहले आईडी द्वारा div का चयन

$('div[id^="c-"]') 
4

$("div[id^=" + controlid + "]") ही नाम के साथ सभी नियंत्रण वापस आ जाएगी लिए यह प्रयास करें, लेकिन आप यह सुनिश्चित करें कि पाठ उपस्थित नहीं होना चाहिए की जरूरत है किसी भी नियंत्रण में

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