web-dev-qa-db-ja.com

.hasClass()の反対のjquery?

要素に特定のクラスがあるかどうかをifステートメントで確認するためにhasClass()を使用しています。要素に特定のクラスがない場合、ifステートメントをどのようにチェックインできますか?返信ありがとうございます。乾杯。マーク.

26
Marc

なぜ単純ではない:

if (!el.hasClass ('foo'))
{

}
64

より一般的にjavascriptでは、ブール結果の反対をチェックするには、論理否定演算子_!_を使用します:

_var isValid = false;
if (!isValid) {
    // execute if isValid = false;
}
_

質問に対して、要素に指定されたクラスがある場合、.hasClass()はブール値を返します。したがって、式がある場合:

_<div class="someClass"></div>

if ($('div').hasClass('someClass')) {
    // will execute
}
_

そのクラスがないかどうかを確認するには:

_if (!$('div').hasClass('someClass')) {
    // will not get here because our element has the class "someClass"
}
_

要素を選択するときに、特定のクラスを持つ人を避けたい場合は、:not()擬似セレクターを使用できます。

_$('div:not(.someClass)')
_

:not()セレクターについて

21
Didier Ghys
if (!element.hasClass('classname')) {
    ...
}
6
fivedigit

使用できます

el.is('.oneClass:not(.secondClass)')

複数のクラスを確認する必要がある場合、または

el.is(':not(.secondClass)')

1つのクラスのみをチェックする必要がある場合。

2
user4174014
if (!($('class/id/objct').hasClass('class name'))) {
       //codes here...
 }
0
Sebin Simon

変更を使用するには、フィルターを使用できます。

$(...some selector...).filter(function (){ 
    return !$(this).hasClass('yourclass');
}).each-or-do-more
0
DanSolo