2010-03-31 7 views

Répondre

228

Utilisez le :not selector.

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

Si vous avez plusieurs ids ou sélecteurs il suffit d'utiliser le séparateur virgule, en plus:

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

+2

Et si vous voulez exclure plus d'une classe? THX – SoulMagnet

+12

De la documentation: 'Tous les sélecteurs sont acceptés à l'intérieur: not(), par exemple:: not (div a) et: not (div, a)' il suffit donc d'utiliser les sélecteurs séparés par des virgules '(". thisclass: not (# thisid, # thatid) "). doAction();' – Chausser

+0

a travaillé avec des guillemets simples comme this - $ (". thisclass: not ('# thisid')"). doAction(); –

5

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

Documentation sur les sélecteurs: http://api.jquery.com/category/selectors/

+5

vouliez-vous dire $ (". ThisClass [id! = 'ThisId']").doAction(); ? – detay

+9

Y at-il un ']' manquant dans l'exemple de code? – David

+0

ugly___________ – Imad

25

Ou prendre. non() méthode

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

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

'.not()' n'est pas un sélecteur. C'est une fonction. Mais il y a aussi ': not()' sélecteur comme les autres réponses. – WoIIe

2

En utilisant la méthode .not() avec la sélection d'un élément entier est également une option. Cette méthode pourrait être utile si vous voulez faire une autre action directement avec cet élément.

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

Vous pouvez utiliser la fonction .pas comme les exemples suivants pour supprimer les éléments qui ont une carte d'identité exacte, id contenant un mot spécifique, id en commençant par un mot, etc ... voir http://www.w3schools.com/jquery/jquery_ref_selectors.asp pour plus d'informations sur les sélecteurs jQuery.

Ignore par ID exact:

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

Ignore ID de qui contient le mot "Id"

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

Ignore les ID qui commencent par "mon"

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

Je vais il suffit de lancer une réponse JS (ES6), au cas où quelqu'un la chercherait:

Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => { 
    doSomething(el); 
} 
Questions connexes