To prawdopodobnie całkiem proste.
Chcę wybrać wszystkie elementy danej klasy thisClass
, z wyjątkiem miejsca, w którym znajduje się identyfikator thisId
.
tj. coś równoważnego (gdzie - / minus oznacza usunięcie):
$(".thisClass"-"#thisId").doAction();
jquery
jquery-selectors
Ankur
źródło
źródło
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 ()
https://api.jquery.com/not/
źródło
.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:
Ignoruj identyfikatory zawierające słowo „Id”
Ignoruj identyfikatory zaczynające się od „my”
źródło
Po prostu dorzucę odpowiedź JS (ES6), na wypadek gdyby ktoś jej szukał:
Aktualizacja (mogło to być możliwe, kiedy zamieściłem oryginalną odpowiedź, ale i tak dodam ją teraz):
To pozbywa się
Array.from
użycia.document.querySelectorAll
zwraca aNodeList
.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
źródło
$(".thisClass[id!='thisId']").doAction();
Dokumentacja dotycząca selektorów: http://api.jquery.com/category/selectors/
źródło
Korzystanie z
.not()
metody z zaznaczeniem całego elementu jest również opcją.Ten sposób może być przydatny, jeśli chcesz bezpośrednio wykonać inną akcję z tym elementem.
źródło