2010-06-10 20 views
94

में कुछ वर्ग वाले तत्वों को बहिष्कृत करता है मैं कुछ एंकर टैग के लिए jQuery में एक क्लिक ईवेंट ट्रिगर सेट करना चाहता हूं।jQuery चयनकर्ता

मैं एक निश्चित टैब वाले लोगों को अनदेखा करते समय एक नए टैब में कुछ लिंक खोलना चाहता हूं (इससे पहले कि आप पूछें कि मैं उन लिंक पर कक्षाएं नहीं डाल सकता जिन्हें मैं पकड़ने की कोशिश कर रहा हूं क्योंकि वे सीएमएस से आते हैं)।

$(".content_box a[class!=button]").click(function (e) { 
    e.preventDefault();  
    window.open($(this).attr('href')); 
}); 

लेकिन वह काम करने के लिए, यह भी कि कैसे मैं एक OR कथन करते हो प्रतीत नहीं होता:

मैं वर्ग के साथ लिंक "button" या "generic_link"

मैं कोशिश की है बाहर करना चाहते हैं बहिष्करण में "generic_link" शामिल करने के लिए?

उत्तर

203

आप .not() विधि का उपयोग कर सकते हैं: वैकल्पिक रूप से

$(".content_box a").not(".button") 

, आप भी :not() का भी उपयोग करेंगे:

$(".content_box a:not('.button')") 

नहीं है दोनों के बीच थोड़ा अंतर दृष्टिकोण, .not() को छोड़कर अधिक पठनीय (विशेष रूप से जब जंजीर) और :not() बहुत मामूली तेज़ है। मतभेदों के बारे में अधिक जानकारी के लिए this Stack Overflow answer देखें।

+1

तो मैं कर सकता है: $ ("content_box एक।") नहीं ("बटन।") नहीं ("generic_link।") पर क्लिक करें (समारोह (ई) ... – Titan

+1

पूरी तरह से काम किया, यहां तक ​​कि।।।? '.each()' – cfx

+0

का उपयोग करते समय ऐसा लगता है कि '.text()' का उपयोग करते समय एक बग है - '.not' का उपयोग करके हटाए गए तत्व का पाठ अभी भी पाठ में है। – Netsi1964

23

उपयोग इस ..

$(".content_box a:not('.button')")

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