2010-07-17 4 views

Répondre

10

Essayez ce sélecteur:

a:not([id*=gallery], [class*=gallery]) 

Cela permet de sélectionner chaque élément a qui n'a pas « galerie », soit dans son id ou sa valeur class de atttribute.

Ou pour un match complet nom d'ID ou classe:

a:not([id=gallery], [class~=gallery]) 

Cela permet de sélectionner chaque élément a qui n'a pas « galerie » comme son ID ou un nom de classe.

+0

+1 qui est beaucoup plus courte. – Sarfraz

+3

Vous pouvez également le faire a: not ([id * = gallery], [class * = gallery]) – joelpittet

+0

@joelpittet: Je suppose que c'est même la bonne réponse car il cherche une disjonction et non une conjonction. – Gumbo

1

Une façon est d'aller sur comme ceci:

$('a').each(function(){ 
    if ($(this).attr('class').indexOf('gallery') == -1 && $(this).attr('id').indexOf('gallery') == -1) { 
    // your code.... 
    } 
}); 
+0

C'est un peu lourd et vous devriez utiliser .filter (function() {return (condition pour correspondre)}) pas .each – joelpittet

1

il y a un sélecteur hasClass non() dans jquery vous pouvez l'utiliser. essayez ceci.

chèque de classe ne

$('a').each(function(){ 
if (!$(this).hasClass('gallery')) 
    { 
     //code here 
    } 
}); 

ou par chèque pour les deux classes et id

$('a').each(function(){ 
if (!$(this).hasClass('gallery') && $(this).attr('id').indexOf('gallery') == -1) 
    { 
     //code here 
    } 
}); 
Questions connexes