2009-08-27 7 views
1

J'ai un sélecteur jQuery avec la syntaxe suivante:Une combinaison de AND et OR dans les sélecteurs jQuery

$('input[type=image]').not('.xyzClass').click(function{ 
    //some functionality 
}); 

Donc, ce qui met une fonctionnalité de clic spécifique pour tous les composants qui sont de type image et n'a pas de classe xyzClass .

***** J'ai modifié la question pour refléter les derniers changements, certaines des réponses ci-dessous sont correctes pour la version précédente mais peuvent ne pas être correctes pour la version modifiée. Toutes mes excuses pour cela.

Nous avons besoin d'une condition OR avec condition de classe. Telle que Tout composant qui est « entrée » ayant le type que l'image, doit être sélectionné si

  1. classe n'est pas xyzClass OU
  2. id contient la chaîne someIdString

Pouvez-vous s'il vous plaît aider à la modification dans le sélecteur existant?

Cheers.

Répondre

2

réponse Mise à jour

$('*:not(.xyzClass)[id*=containsThisValue]') 

Pour votre question mise à jour, bien que cela ne soit pas optimisé, je recommande préciser autant que vous le pouvez.

réponse originale:

function someSpecificFunctionality() { 
} 

$(els) 

.click(someSpecificFunctionality) 
.data('someSpecificFunctionality', true) 


$(els).filter(function() { 

    return 
     $(this).not('.xyzClass') && 
     $(this).data('someSpecificFunctionality') == true 

}); 
+0

Accepter cela comme la réponse car c'est une façon plus flexible étant donné que je pourrais avoir plus de conditions à l'avenir. – Priyank

0

à faire un « OU » utiliser une virgule:

$('input[type=image]') 
    .not(".xyzClass,[onclick*='someSpecificFunctionality()']") 
    .click(...); 

Je ne sais pas comment vous définissez le onclick cependant: est-il dans votre code HTML ou est ajouté par programme?

+0

cela mettra une condition non sur le deuxième "onclick" vérifier aussi. N'est-ce pas? Ce qui n'est pas la solution que nous voulons. – Priyank

+0

oh - la question était un peu ambiguë dans sa forme originale. – nickf

2
$(":image:not(.xyzClass),:image[onclick*='someSpecificFunctionality']"); 
+0

Merci. Cela m'a aidé à obtenir la bonne réponse. – Priyank

Questions connexes