it-swarm-id.com

Bagaimana cara memeriksa apakah suatu elemen TIDAK memiliki kelas tertentu?

Bagaimana saya memeriksa jika tidak ada kelas. Misalnya, saya tahu cara mengecek untuk melihat apakah kelasnya "tes", tetapi bagaimana cara memeriksa untuk melihat apakah kelas itu tidak memiliki "tes" kelas?

if($(this).hasClass("test")){
}
200
user1005793
if (!$(this).hasClass("test")) {
411
sdleihssirhc

jawaban sdleihssirhc tentu saja adalah yang benar untuk kasus dalam pertanyaan, tetapi hanya sebagai referensi jika Anda perlu memilih elemen yang tidak memiliki kelas tertentu, Anda dapat menggunakan pemilih tidak :

// select all divs that don't have class test
$( 'div' ).not( ".test" );
$( 'div:not(.test)' );  // <-- alternative 
131
JJJ

Pilih elemen (atau grup elemen) yang memiliki kelas "abc", tidak memiliki kelas "xyz":

    $('.abc:not(".xyz")')

Saat memilih CSS biasa, Anda dapat menggunakan .abc:not(.xyz).

11
George-Paul B.

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.
});
6
aircraft

gunakan metode .not () dan periksa atribut:

$('p').not('[class]');

Periksa di sini: http://jsfiddle.net/AWb79/

5
Matthew Cira

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

0
omarjebari

membaca ini 6 tahun kemudian dan berpikir saya juga akan mengambil hack itu, juga di nada TIMTOWTDI ...: D, berharap itu tidak salah 'Etiket JS'.

Saya biasanya mengatur var dengan kondisi dan kemudian merujuknya nanti..i.e;

// 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) : '' ;
0
le_pragmatist