Bagaimana saya memeriksa jika tidak ada kelas. Misalnya, saya tahu cara mengecek untuk melihat apakah kelasnya memiliki "tes", tetapi bagaimana cara memeriksa untuk melihat apakah kelas itu tidak memiliki "tes" kelas?
if($(this).hasClass("test")){
}
Bagaimana saya memeriksa jika tidak ada kelas. Misalnya, saya tahu cara mengecek untuk melihat apakah kelasnya memiliki "tes", tetapi bagaimana cara memeriksa untuk melihat apakah kelas itu tidak memiliki "tes" kelas?
if($(this).hasClass("test")){
}
Jawaban:
if (!$(this).hasClass("test")) {
Jawaban sdleihssirhc tentu saja yang benar untuk kasus dalam pertanyaan, tetapi hanya sebagai referensi jika Anda perlu memilih elemen yang tidak memiliki kelas tertentu, Anda dapat menggunakan pemilih yang tidak :
// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' ); // <-- alternative
Pilih elemen (atau grup elemen) yang memiliki kelas "abc", tidak memiliki kelas "xyz":
$('.abc:not(".xyz")')
Saat memilih CSS biasa yang dapat Anda gunakan .abc:not(.xyz).
gunakan metode .not () dan periksa atribut:
$('p').not('[class]');
Lihat di sini: http://jsfiddle.net/AWb79/
Anda dapat mencoba ini:
<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.
});
Ada skenario yang lebih kompleks di mana ini tidak berhasil. Bagaimana jika Anda ingin memilih elemen dengan kelas A yang tidak mengandung elemen dengan kelas B. Anda akhirnya membutuhkan sesuatu yang lebih seperti:
Jika elemen induk tidak mengandung elemen turunan tertentu; jQuery
membaca ini 6 tahun kemudian dan berpikir saya juga akan mengambil hack itu, juga dalam nada TIMTOWTDI ...: D, berharap itu tidak salah 'etiket JS'.
Saya biasanya mengatur var dengan kondisi dan kemudian merujuknya nanti..yaitu;
// 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) {
//
}
}
Meskipun saya harus menyebutkan bahwa saya melakukan ini karena saya terutama menggunakan operator ternary kondisional dan ingin kode bersih. Jadi dalam hal ini, yang saya miliki adalah ini:
hC ? '' : foo(x, n) ;
// OR -----------
!hC ? foo(x, n) : '' ;
... alih-alih ini:
$this.hasClass("test") ? '' : foo(x, n) ;
// OR -----------
(!$this.hasClass("test")) ? foo(x, n) : '' ;
Saya tidak tahu mengapa, tetapi jawaban yang diterima tidak berhasil untuk saya. Alih-alih ini berhasil:
if ($(this).hasClass("test") !== false) {}
if($(this).is(":not(.test)"))> :)