2011-09-28 7 views
24

तो मैं बैकएंड टीम के निर्माण में अच्छी तरह से विचार नहीं कर रहा था। यह मुझे divs से भरा दस्तावेज़ के साथ छोड़ देता है।jquery विशिष्ट वर्ग द्वारा तत्व ढूंढें जब तत्व में कई वर्ग

क्या मैं कर रहा हूँ तत्व मैं पर क्लिक करने की जरूरत से वापस चल रहा है, मिल पैरेंट कंटेनर तो माता-पिता जो class="alert-box warn" है, class="alert-box dead", आदि ... अनिवार्य रूप से, मैं कई उपयोग करने के लिए कोशिश कर रहा हूँ के भीतर एक तत्व को खोजने प्रत्येक तत्व पर वर्ग चयनकर्ता। जब मैं केवल alert-box खोजने का प्रयास करता हूं तो यह सही काम नहीं कर रहा है। मुझे लगता है क्योंकि इसमें warn, मृत है, `ठीक है, आदि ...

मैं केवल alert-box* या वाइल्डकार्ड अवधारणा के समतुल्य कैसे पा सकता हूं?

+2

क्या आप अपने एचटीएमएल मार्कअप का नमूना पोस्ट कर सकते हैं? –

उत्तर

52

आप इस

$(".alert-box.warn, .alert-box.dead"); 

तरह चयनकर्ताओं को जोड़ सकते हैं या किसी वाइल्डकार्ड का उपयोग अगर आप चाहते हैं attribute-contains selector

$("[class*='alert-box']"); 

नोट: अधिमानतः आप जब ऊपर चयनकर्ताओं का उपयोग कर तत्व प्रकार या टैग पता होगा। टैग को जानना चयनकर्ता को अधिक कुशल बना सकता है।

$("div.alert-box.warn, div.alert-box.dead"); 
$("div[class*='alert-box']"); 
+0

मैं बाद वाले पर पहले चयनकर्ता की सिफारिश करता हूं। – Bojangles

+1

आप * = के लिए^= को भी प्रतिस्थापित कर सकते हैं यदि आप यह सुनिश्चित करने में रुचि रखते हैं कि तत्व की कक्षा केवल "शामिल" अलर्ट-बॉक्स के बजाय अलर्ट-बॉक्स से "प्रारंभ होती है"। –

+0

मैंने अभी एक उदाहरण पोस्ट किया है jsfiddle https://jsfiddle.net/frxyqzw3/2/ वर्ग * विचार – shadi

2

किसी तत्व में कक्षा नामों की संख्या हो सकती है, हालांकि, इसमें केवल एक वर्ग विशेषता हो सकती है; केवल पहला ही jQuery द्वारा पढ़ा जाएगा।

आपके द्वारा पोस्ट किए गए कोड का उपयोग करके, $(".alert-box.warn") काम करेगा लेकिन $(".alert-box.dead") नहीं होगा।

+0

दिखा रहा है केवल पहले 'वर्ग = "" विशेषता ब्राउज़र द्वारा पढ़ी जाएगी, अकेले jQuery दें। – Bojangles

+0

यही वह बिंदु है जिसका अर्थ है कि मैं इस उत्तर के साथ मिलना चाहता हूं, क्या यह पर्याप्त स्पष्ट नहीं है? –

+0

मैं सिर्फ यह स्पष्ट करना चाहता था कि jQuery वास्तव में ब्राउजर के एचटीएमएल पार्सर को अनदेखा करने के कारण किसी और 'वर्ग = "" es es को _see_ नहीं करेगा। – Bojangles

-1

आप के लिए http://api.jquery.com/hasClass/

<div id="mydiv" class="foo bar"></div> 

$('#mydiv').hasClass('foo') //returns ture 
+4

नहीं, वह नहीं है - वह तत्वों का चयन करना चाहता है कि उनके पास कौन सी कक्षा है, यह देखने के लिए कि उनके पास कोई तत्व है या नहीं। – Bojangles

3
var divs = $("div[class*='alert-box']"); 
7

देख रहे हैं आप तो जैसे कई वर्गों के साथ तत्वों का चयन कर सकते हैं:

$("element.firstClass.anotherClass"); 

सीधे शब्दों में एक के बिना पहले एक पर अगली कक्षा, श्रृंखला अंतरिक्ष (रिक्त स्थान का मतलब है "बच्चे")।