2011-10-26 14 views
2

クリックした要素にクラスagalleryまたはaslideがない場合にのみ、条件付きで条件を満たす必要があります。これは私のために働いていません。jQuery hasClass条件式

if(!$(this).hasClass('agallery') || !$(this).hasClass('aslide')){ 
    //do certain things 
} 
+0

はあなたのjQueryのコードおよび/またはあなたが作業しているHTMLのいくつかのより多くを提供することができますか? – legendofawesomeness

答えて

6
if(!($(this).hasClass('agallery') || $(this).hasClass('aslide'))){ 

基本的に、あなたはクライヴの同等は「(ないA)であるのに対し、 "ない(AまたはBのどちらか)" としてこれを読んで、(必要がありますBではない)。

「(Aではない)または(Bでない)」という条件は、それがない場合は真です。だから両方のクラスがある場合にのみ、それは偽になります。

+0

または、デモガンを適用する...クライブの答え! :) –

2

代わり&&を使用してみてください:

if(!$(this).hasClass('agallery') && !$(this).hasClass('aslide')){ 
    //do certain things 
} 
+0

@Matthew FlaschenまたはDe Morgan'sを適用する... Matthew Flaschenの答え! :) –

2

直接クラス名に正規表現を使用して、非jQueryの方法もあります:

if (!this.className.match(/\bagallery\b|\baslide\b/)) { 
    // do certain things 
}