Bu muhtemelen oldukça basit.
thisClass
Kimliğin bulunduğu yer dışında, belirli bir sınıfın tüm öğelerini seçmek istiyorum thisId
.
yani eşdeğer bir şey (burada - / eksi kaldırmayı gerektirir):
$(".thisClass"-"#thisId").doAction();
Yanıtlar:
Seçici değil kullanın .
$(".thisclass:not(#thisid)").doAction();
Birden çok kimliğiniz veya seçiciniz varsa, ek olarak virgül ayırıcıyı kullanın:
(".thisclass:not(#thisid,#thatid)").doAction();
All selectors are accepted inside :not(), for example: :not(div a) and :not(div,a)
yani sadece birden yapmaya virgülle ayrılmış seçicileri kullanabilirsiniz(".thisclass:not(#thisid,#thatid)").doAction();
.not()
seçici değil. Bu bir işlev. Ancak :not()
diğer cevapların bahsettiği gibi seçici de var .
Tam kimliği, belirli bir kelimeyi içeren kimliği, bir kelimeyle başlayan kimliği, vb. Olan öğeleri kaldırmak için aşağıdaki örneklerde olduğu gibi .not işlevini kullanabilirsiniz ... bkz. Http://www.w3schools.com/jquery/jquery_ref_selectors jQuery seçiciler hakkında daha fazla bilgi için .asp .
Tam Kimliğe göre Yoksay:
$(".thisClass").not('[id="thisId"]').doAction();
"Kimlik" kelimesini içeren kimlikleri yoksay
$(".thisClass").not('[id*="Id"]').doAction();
"Benim" ile başlayan kimlikleri yoksay
$(".thisClass").not('[id^="my"]').doAction();
Birisi ararsa diye bir JS (ES6) cevabı vereceğim:
Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
doSomething(el);
}
Güncelleme (bu, orijinal cevabı yayınladığımda mümkün olabilirdi, ancak bunu şimdi ekledim):
document.querySelectorAll(".myClass:not(#myId)").forEach((el,i) => {
doSomething(el);
});
Bu Array.from
kullanımdan kurtulur .
document.querySelectorAll
döndürür a NodeList
.
Bunu (ve diğer şeyleri) nasıl yineleyeceğinizi öğrenmek için burayı okuyun: https://developer.mozilla.org/en-US/docs/Web/API/NodeList
$(".thisClass[id!='thisId']").doAction();
Seçicilerle ilgili belgeler: http://api.jquery.com/category/selectors/