クラスがないかどうかを確認するにはどうすればよいですか。たとえば、「test」というクラスがあるかどうかを確認する方法は知っていますが、「test」というクラスがないかどうかを確認するにはどうすればよいですか?
if($(this).hasClass("test")){
}
クラスがないかどうかを確認するにはどうすればよいですか。たとえば、「test」というクラスがあるかどうかを確認する方法は知っていますが、「test」というクラスがないかどうかを確認するにはどうすればよいですか?
if($(this).hasClass("test")){
}
回答:
if (!$(this).hasClass("test")) {
sdleihssirhcの答えはもちろん問題のケースでは正しいものですが、特定のクラスを持たない要素を選択する必要がある場合の参考として、notセレクターを使用できます。
// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' ); // <-- alternative
あなたはこれを試すことができます:
<div id="div1" class="myClass">there is a class</div>
<div id="div2"> there is no class2 </div>
$(document).ready(function(){
$("#div2").not('.myClass'); // do not have `myClass` class.
});
これが機能しないより複雑なシナリオがあります。クラスBの要素を含まないクラスAの要素を選択する場合はどうなるでしょうか。最終的には次のようなものが必要になります。
この6年間を最後まで読んで、私もTIMTOWTDI 静脈でハッキングをしようと思いました...:D、「JSのエチケット」が正しくないことを願っています。
私は通常、条件で変数を設定し、後でそれを参照します。
// var set up globally OR locally depending on your requirements
var hC;
function(el) {
var $this = el;
hC = $this.hasClass("test");
// use the variable in the conditional statement
if (!hC) {
//
}
}
私がこれを行うのは、主に条件付き3項演算子を使用し、クリーンなコードが必要なためです。したがって、この場合、私が持っているのはこれだけです:
hC ? '' : foo(x, n) ;
// OR -----------
!hC ? foo(x, n) : '' ;
...これの代わりに:
$this.hasClass("test") ? '' : foo(x, n) ;
// OR -----------
(!$this.hasClass("test")) ? foo(x, n) : '' ;
if($(this).is(":not(.test)"))