jQuery चयनकर्ता में कुछ निश्चित वर्ग वाले तत्वों को बाहर करता है


127

मैं कुछ एंकर टैग के लिए jQuery में एक क्लिक इवेंट ट्रिगर सेटअप करना चाहता हूं।

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

मैं कक्षा के साथ लिंक को बाहर करना चाहता हूं "button"या"generic_link"

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

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

लेकिन यह काम करने के लिए प्रतीत नहीं होता है, यह भी कि मैं "generic_link"बहिष्करण में शामिल करने के लिए एक OR कथन कैसे करता हूं ?

जवाबों:


263

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

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

वैकल्पिक रूप से, आप इसका भी उपयोग कर सकते हैं : नहीं () चयनकर्ता:

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

दोनों दृष्टिकोणों के बीच बहुत कम अंतर है, सिवाय .not()अधिक पठनीय (विशेषकर जंजीर के) और :not()बहुत मामूली रूप से तेज है। अंतरों के बारे में अधिक जानकारी के लिए यह स्टैक ओवरफ्लो उत्तर देखें ।


1
इसलिए मैं कर सकता था: $ ("। Content_box a")। नहीं ("बटन")। Not ("" Generic_link ")। क्लिक करें (फ़ंक्शन (e) ...
टाइटन

1
उपयोग करते समय भी पूरी तरह से काम किया .each()
cfx

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


2

आज मुझे मदद करने वाली कुछ जानकारी जोड़ने के लिए, एक jQuery ऑब्जेक्ट / .not () चयनकर्ता thisको भी पास किया जा सकता है ।

$(document).ready(function(){
    $(".navitem").click(function(){
        $(".navitem").removeClass("active");
        $(".navitem").not($(this)).addClass("active");
    });
});
.navitem
{
    width: 100px;
    background: red;
    color: white;
    display: inline-block;
    position: relative;
    text-align: center;
}
.navitem.active
{
    background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="navitem">Home</div>
<div class="navitem">About</div>
<div class="navitem">Pricing</div>

ऊपर के उदाहरण सरल किया जा सकता है, लेकिन के उपयोग दिखाना चाहते थे thisमें not()चयनकर्ता।

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