2010-03-31 16 views

Odpowiedz

228

Użyj :not selector.

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

Jeśli masz wiele identyfikatorów i selektorów wystarczy użyć separator przecinek, dodatkowo:

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

+2

Co zrobić, jeśli chcesz wykluczyć więcej niż jedną klasę? THX – SoulMagnet

+12

Z dokumentacji: 'Wszystkie selektory są akceptowane wewnątrz: not(), na przykład:: not (div a) i: not (div, a)' tak po prostu użyj selektorów rozdzielanych przecinkami, aby zrobić wiele '(". thisclass: not (# thisid, # thatid) "). doAction();' – Chausser

+0

pracował z pojedynczymi cytatami, jak ten - $ (". thisclass: not ('# thisid')"). doAction(); –

25

lub wziąć. nie() metoda

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

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

'.not()' nie jest selektorem. To jest funkcja. Ale istnieje również selektor ': not()' jak inne wzmianki o odpowiedziach. – WoIIe

2

Stosując metodę .not() z wyboru cały element jest również opcja.

Ten sposób może być przydatny, jeśli chcesz bezpośrednio wykonać kolejną akcję z tym elementem.

$(".thisClass").not($("#thisId")[0].doAnotherAction()).doAction(); 
4

Można użyć funkcji jak w poniższych przykładach .NOT aby usunąć elementy, które mają dokładnie id, id zawierające określone słowo, id zaczynające się słowem, etc ... zobacz http://www.w3schools.com/jquery/jquery_ref_selectors.asp aby uzyskać więcej informacji na selektorach jQuery.

ignorowanie przez Exact ID:

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

Ignoruj ​​identyfikatory, które zawiera słowo "id"

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

Ignoruj ​​identyfikatory, które zaczynają się od "mojego"

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

będę wystarczy podać odpowiedź JS (ES6), na wypadek gdyby ktoś jej szukał:

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