Pertanyaan Jquery: Cara memeriksa apakah elemen memiliki kelas / gaya css tertentu


Saya memiliki div:

<div class="test" id="someElement" style="position: absolute"></div>

Adakah cara untuk memeriksa apakah elemen tertentu:

$("#someElement") 

memiliki kelas tertentu (dalam kasus saya, "test").

Bergantian, adakah cara untuk memastikan bahwa elemen en memiliki gaya tertentu? Dalam contoh ini, saya ingin tahu apakah elemen memiliki "position: absolute".

Terima kasih banyak!


75
2018-04-17 08:56


asal


Jawaban:


if($('#someElement').hasClass('test')) {
  ... do something ...
}
else {
  ... do something else ...
}

51
2018-04-17 09:01



Gaya CSS adalah pasangan kunci-nilai, bukan hanya "tag". Secara default, setiap elemen memiliki set lengkap gaya CSS yang ditetapkan untuk itu, kebanyakan dari mereka secara implisit menggunakan default browser dan beberapa di antaranya secara eksplisit didefinisikan ulang dalam stylesheet CSS.

Untuk mendapatkan nilai yang ditetapkan untuk entri CSS tertentu dari suatu elemen dan membandingkannya:

if ($('#yourElement').css('position') == 'absolute')
{
   // true
}

Jika Anda tidak mendefinisikan ulang gaya, Anda akan mendapatkan default browser untuk elemen tertentu.


250
2018-04-17 09:02



if ($("element class or id name").css("property") == "value") {
    your code....
}

12
2018-02-26 12:43



Saya telah menemukan satu solusi:

$("#someElement")[0].className.match("test")

tetapi entah bagaimana saya percaya bahwa ada cara yang lebih baik!


1
2018-04-17 09:01



Atau, jika Anda perlu mengakses elemen yang memiliki properti itu dan tidak menggunakan id, Anda bisa pergi ke rute ini:

$("img").each(function () {
        if ($(this).css("float") == "left") { $(this).addClass("left"); }
        if ($(this).css("float") == "right") { $(this).addClass("right"); }
    })

1
2018-01-21 23:25



Jika Anda menggunakan jQuery, dan ingin memeriksa dengan gaya tertentu maka kode Anda akan

if($('#someElement').css('position', 'absolute')) {
  ... do something ...
}
else {
  ... do something else ...
}

& jika Anda ingin memeriksa berdasarkan kelas,

if($('#someElement').hasClass('test')) {
  ... do something ...
}
else {
  ... do something else ...
}

jQuery CDN

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

0
2018-05-24 09:42



Pertanyaan adalah menanyakan dua hal yang berbeda:

  1. Unsur memiliki kelas tertentu
  2. Sebuah elemen memiliki gaya tertentu.

Pertanyaan kedua sudah dijawab. Untuk yang pertama, saya akan melakukannya dengan cara ini:

if($("#someElement").is(".test")){
    // Has class test assigned, eventually combined with other classes
}
else{
    // Does not have it
}

0
2017-07-29 14:22