jQuery: किसी विशेष आईडी को छोड़कर किसी दिए गए वर्ग के सभी तत्वों का चयन करें


146

यह शायद बहुत सरल है।

मैं किसी दिए गए वर्ग के सभी तत्वों का चयन करना चाहता हूं thisClass, जहां आईडी है, को छोड़कर thisId

अर्थात (जहाँ - / / ऋण से तात्पर्य है) के बराबर कुछ

$(".thisClass"-"#thisId").doAction();

जवाबों:


290

का प्रयोग करें : चयनकर्ता नहीं

$(".thisclass:not(#thisid)").doAction();

यदि आपके पास कई आईडी या चयनकर्ता हैं, तो इसके अलावा कॉमा सीमांकक का उपयोग करें:

(".thisclass:not(#thisid,#thatid)").doAction();


3
यदि आप एक से अधिक वर्गों को बाहर करना चाहते हैं तो क्या होगा? THX
सोलमैग्नेट

13
प्रलेखन से: All selectors are accepted inside :not(), for example: :not(div a) and :not(div,a)तो बस कॉमा सीमांकित चयनकर्ताओं का उपयोग कई करने के लिए करें(".thisclass:not(#thisid,#thatid)").doAction();
चेस

इस तरह के एकल उद्धरणों के साथ काम किया - $ ("। इलकास: नहीं ('# थिंक')")। doAction ();
मुहम्मद राजा

या यदि आप एक विशेष वर्ग के नाम वाले तत्वों के सभी बच्चों को बांधना चाहते हैं, तो एक को छोड़कर, आप इस तरह कर सकते हैं: $ ('। itclass: not (#id) .otherclass')। doAction ()
dalan

क्या होगा अगर मेरे पास एक मानक कोड है जैसे: $ ('# कुछ')। महत्वहीन, $ ('# एक और')। dosomethingelse और मैं गतिशील रूप से दिए गए विशिष्ट आईडी पर निष्पादन से बचना चाहता हूं?
बोटिया फ्लोरिन

29

या .not () तरीका अपनाएं

https://api.jquery.com/not/

$(".thisClass").not("#thisId").doAction();

3
.not()एक चयनकर्ता नहीं है। यह एक समारोह है। लेकिन :not()अन्य उत्तर उल्लेखों की तरह चयनकर्ता भी है।
WoIIe

7

आप उन वस्तुओं को हटाने के लिए निम्न उदाहरणों की तरह उपयोग नहीं कर सकते हैं जिनमें एक सटीक आईडी, एक विशिष्ट शब्द वाली आईडी, एक शब्द के साथ शुरू होने वाला आईडी, आदि ... आदि http://www.w3schools.com/jquery/jquery_ref_selectors देखें jQuery के चयनकर्ताओं के बारे में अधिक जानकारी के लिए .asp

सटीक आईडी द्वारा अनदेखा करें:

 $(".thisClass").not('[id="thisId"]').doAction();

आईडी को अनदेखा करें जिसमें "Id" शब्द हो

$(".thisClass").not('[id*="Id"]').doAction();

आईडी की उपेक्षा करें जो "मेरे" से शुरू होती है

$(".thisClass").not('[id^="my"]').doAction();

6

मैं सिर्फ एक JS (ES6) जवाब में फेंक दूंगा, अगर कोई इसकी तलाश में है:

Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
    doSomething(el);
}

अद्यतन (यह संभव हो सकता है जब मैंने मूल उत्तर पोस्ट किया था, लेकिन इसे अब भी जोड़ना):

document.querySelectorAll(".myClass:not(#myId)").forEach((el,i) => {
    doSomething(el);
});

इससे Array.fromउपयोग से छुटकारा मिल जाता है ।

document.querySelectorAllएक रिटर्न NodeList
इसे (और अन्य बातों पर) कैसे पुनरावृत्त करें, इसके बारे में अधिक जानने के लिए यहां पढ़ें: https://developer.mozilla.org/en-US/docs/Web/API/NodeList



2

.not()संपूर्ण तत्व का चयन करने के साथ विधि का उपयोग करना भी एक विकल्प है।

यदि आप सीधे उस तत्व के साथ एक और क्रिया करना चाहते हैं तो यह तरीका उपयोगी हो सकता है।

$(".thisClass").not($("#thisId")[0].doAnotherAction()).doAction();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.