jQuery: एक ही समय में एक तत्व वर्ग और आईडी का चयन करें?


170

मुझे कुछ लिंक मिले हैं जो मैं एक ही समय में कक्षा और आईडी का चयन करना चाहता हूं।

ऐसा इसलिए है क्योंकि मुझे 2 अलग-अलग व्यवहार मिले हैं। जब लिंक के एक वर्ग को एक वर्ग का नाम मिला, तो वे एक तरह से व्यवहार करते हैं, जब लिंक के एक ही वर्ग को दूसरे वर्ग का नाम मिला, तो वे अलग तरह से व्यवहार करते हैं। वर्ग के नाम jquery के साथ स्विच होते हैं।

इसलिए मुझे उसी समय लिंक क्लास और आईडी का चयन करने में सक्षम होना चाहिए। क्या यह संभव है?

मैंने कोशिश की:

 $("a .save #country")

बिना किसी परिणाम के।

जवाबों:


305

तुम कर सकते हो:

$("#country.save")...

या

$("a#country.save")...

या

$("a.save#country")...

जैसा आप चाहें।

तो हां आप एक चयनकर्ता को निर्दिष्ट कर सकते हैं जिसे आईडी और वर्ग (और संभावित टैग नाम और कुछ और जिसे आप फेंकना चाहते हैं) से मेल खाना है ।


41
तो मूल रूप से इसकी तरह: $ ("# ए। बी") का अर्थ है आईडी के साथ तत्व के अंदर वर्ग बी के साथ तत्व ए। $ ("# अब") का अर्थ है क्लास बी और आईडी ए वाला तत्व। ट्रिक #a और .b के बीच की जगह है
भूमि सिंघल

13
सावधान रहें कि आप कक्षा से पहले आईडी चयनकर्ता का उपयोग करें अन्यथा यह काम नहीं करता है। उदाहरण: $ ("# देश बचाओ") ... परिणाम वापस नहीं करता है।
स्लॉटोमो

43

बस यह जोड़ने के लिए कि एलेक्स ने जो उत्तर दिया वह मेरे लिए काम करता है, न कि वह जो उत्तर के रूप में उजागर किया जाता है।

यह एक मेरे लिए काम नहीं किया

$('#country.save') 

लेकिन इस एक ने किया:

$('#country .save') 

इसलिए मेरा निष्कर्ष अंतरिक्ष का उपयोग करना है। अब मुझे नहीं पता कि यह jQuery के नए संस्करण के लिए है जिसका उपयोग मैं (1.5.1) कर रहा हूं, लेकिन वैसे भी आशा है कि यह किसी को भी इसी तरह की समस्या के साथ मदद करता है जो मेरे पास है।

संपादित करें: स्पष्टीकरण के लिए पूर्ण श्रेय (एलेक्स के जवाब में टिप्पणी में) फेलिक्स क्लिंग को जाता है जो कहते हैं:

अंतरिक्ष वंशज चयनकर्ता है, अर्थात एबी का अर्थ है "बी से मेल खाने वाले सभी तत्वों का मिलान करें जो ए से मेल खाने वाले तत्वों के वंशज हैं"। AB का अर्थ है "A और B से मेल खाने वाले सभी तत्व का चयन करें"। तो यह वास्तव में इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं। #country.saveऔर #country .saveसमकक्ष नहीं हैं।


2
क्या समस्या यह है कि आपने "देश" के बजाय "प्रतिपक्ष" कहा है?
amindfv

8

यह आईडी और श्रेणी पहचानकर्ता के बीच स्थान जोड़ते समय काम करेगा

$("#countery .save")...


1
वास्तव में यह मेरे लिए काम कर रहा था, क्योंकि यह $ ('# काउंटर.सेवे') की तरह काम नहीं कर रहा था, इसलिए धन्यवाद!
निकोला

1
मैंने पाया है कि कभी-कभी यह अंतरिक्ष के बारे में picky है। $ (जैसे। चयनकर्ता> .item # आईडी) काम करता है, लेकिन $ (चयनकर्ता> .item #id) नहीं है।
अबे पेट्रिलो

21
अंतरिक्ष अवरोही चयनकर्ता है , A Bजिसका अर्थ है "बी से मेल खाने वाले सभी तत्वों का मिलान करें जो ए से मेल खाने वाले तत्वों के वंशज हैं"। AB"ए और बी से मेल खाने वाले सभी तत्व का चयन करें"। तो यह वास्तव में इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं। #countery.saveऔर #countery .saveसमकक्ष नहीं हैं।
फेलिक्स क्लिंग

2

अंत में सीएसएस लागू करने के लिए समान नियम।

इसलिए मुझे लगता है कि यह संदर्भ कुछ मूल्यवान उपयोग का हो सकता है।


क्या आप अपने संदर्भ की सामग्री को संक्षेप में बता सकते हैं?
krlmlr

वास्तव में, api.jquery.com/category/selectors के अनुसार jQuery के अपने कुछ चयनकर्ता हैं; यह भी, यह वास्तव में यह नहीं कहता है कि सभी CSS 1-3 चयनकर्ता समर्थित हैं ...
SamB

@SamB आप सही कह रहे हैं लेकिन, यह कहता है कि यह CSS 1-3 से उधार लेता है और अपना खुद का जोड़ता है। मुझे अभी भी लगता है कि W3C सामान का लिंक इस चर्चा के लिए मान्य है।
अंकुशमाता


1
$("a.save, #country") 

दोनों "a.save" वर्ग और "देश" आईडी का चयन करेंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.