Risposte:
Utilizzare il selettore: not .
$(".thisclass:not(#thisid)").doAction();
Se hai più ID o selettori, usa semplicemente il delimitatore virgola, inoltre:
(".thisclass:not(#thisid,#thatid)").doAction();
All selectors are accepted inside :not(), for example: :not(div a) and :not(div,a)
quindi basta usare i selettori delimitati da virgole per fare più(".thisclass:not(#thisid,#thatid)").doAction();
Oppure prendi il metodo .not ()
$(".thisClass").not("#thisId").doAction();
.not()
non è un selettore. È una funzione. Ma c'è anche un :not()
selettore come altre menzioni di risposta.
È possibile utilizzare la funzione .not come i seguenti esempi per rimuovere elementi con un ID esatto, un id che contiene una parola specifica, un id che inizia con una parola, ecc ... consultare http://www.w3schools.com/jquery/jquery_ref_selectors .asp per ulteriori informazioni sui selettori jQuery.
Ignora per ID esatto:
$(".thisClass").not('[id="thisId"]').doAction();
Ignora ID che contiene la parola "Id"
$(".thisClass").not('[id*="Id"]').doAction();
Ignora ID che iniziano con "mio"
$(".thisClass").not('[id^="my"]').doAction();
Lancerò una risposta JS (ES6), nel caso qualcuno la stia cercando:
Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
doSomething(el);
}
Aggiornamento (questo potrebbe essere stato possibile quando ho pubblicato la risposta originale, ma aggiungendola comunque ora):
document.querySelectorAll(".myClass:not(#myId)").forEach((el,i) => {
doSomething(el);
});
Questo elimina l' Array.from
utilizzo.
document.querySelectorAll
restituisce a NodeList
.
Leggi qui per saperne di più su come iterarlo (e altre cose): https://developer.mozilla.org/en-US/docs/Web/API/NodeList
$(".thisClass[id!='thisId']").doAction();
Documentazione sui selettori: http://api.jquery.com/category/selectors/