Odpowiedzi:
Użyj : nie selektora .
$(".thisclass:not(#thisid)").doAction();
Jeśli masz wiele identyfikatorów lub selektorów, po prostu użyj separatora przecinka, a ponadto:
(".thisclass:not(#thisid,#thatid)").doAction();
All selectors are accepted inside :not(), for example: :not(div a) and :not(div,a)
po prostu użyj selektorów rozdzielanych przecinkami, aby zrobić wiele(".thisclass:not(#thisid,#thatid)").doAction();
Lub skorzystaj z metody .not ()
$(".thisClass").not("#thisId").doAction();
.not()
nie jest selektorem. To funkcja. Ale jest też :not()
selektor, jak inne wzmianki w odpowiedzi.
Możesz użyć funkcji .not jak w poniższych przykładach, aby usunąć elementy, które mają dokładny identyfikator, identyfikator zawierający określone słowo, identyfikator zaczynający się od słowa itp. Patrz http://www.w3schools.com/jquery/jquery_ref_selectors .asp, aby uzyskać więcej informacji na temat selektorów jQuery.
Ignoruj według dokładnego identyfikatora:
$(".thisClass").not('[id="thisId"]').doAction();
Ignoruj identyfikatory zawierające słowo „Id”
$(".thisClass").not('[id*="Id"]').doAction();
Ignoruj identyfikatory zaczynające się od „my”
$(".thisClass").not('[id^="my"]').doAction();
Po prostu dorzucę odpowiedź JS (ES6), na wypadek gdyby ktoś jej szukał:
Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
doSomething(el);
}
Aktualizacja (mogło to być możliwe, kiedy zamieściłem oryginalną odpowiedź, ale i tak dodam ją teraz):
document.querySelectorAll(".myClass:not(#myId)").forEach((el,i) => {
doSomething(el);
});
To pozbywa się Array.from
użycia.
document.querySelectorAll
zwraca a NodeList
.
Przeczytaj tutaj, aby dowiedzieć się więcej o tym, jak go iterować (i inne rzeczy): https://developer.mozilla.org/en-US/docs/Web/API/NodeList
$(".thisClass[id!='thisId']").doAction();
Dokumentacja dotycząca selektorów: http://api.jquery.com/category/selectors/