2009-04-17 18 views
72

Bir div:JQuery: Öğenin belirli css sınıfının/stilinin olup olmadığını kontrol etme

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

Belirli bir öğenin olup olmadığını kontrol etmenin bir yolu var mı:

$("#someElement") 

belirli bir sınıfa sahip (benim durumumda, "test").

Alternatif olarak, en elemanın belirli bir tarzı olduğunu kontrol etmenin bir yolu var mı? Bu örnekte, öğenin "position: mutute" olup olmadığını bilmek istiyorum.

Çok teşekkür ederim!

+14

it'sd eğer soru emin ya da değil Bu yanlış cevap, ama soru tarzı = "test", ve cevap görünüyor class = "test" – wheresrhys

+1

Benim tahminim yanlış, yanlış cevap olarak işaretlenmiş çünkü soru, yanlıştır; oysa, oylara baktıktan sonra, çoğu insanın bu yanlış soruya doğru cevabı bulmak için buraya geldiklerini düşünüyorum ... bu bir anlam ifade ederse ... DrJokepu'nun cevabı demek istiyorum. Bu yüzden en azından buradayım. – BrainSlugs83

cevap

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

çok teşekkür ederim. kusursuz çözüm – 0100110010101

+56

Bu, soruyu sorduğu gibi yanıtlamıyor - DrJokepu'nun cevabı aşağıdadır. –

+0

benim için mükemmel çalışıyor :) – Rajnikanth

1

i bir çözüm bulduk:

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

ama nedense ben daha iyi bir yolu olduğuna inanıyoruz!

241

CSS Stilleri yalnızca "etiketler" değil, anahtar/değer çiftleridir. Varsayılan olarak, her öğenin kendisine atanmış bir CSS stilleri kümesi vardır, bunların çoğu tarayıcı varsayılanlarını dolaylı olarak kullanır ve bazıları CSS stil sayfalarında açıkça yeniden tanımlanır.

bir elementin belli bir CSS girişine atanan değer almak ve karşılaştırmak için: stili yeniden olmadıysa, o belirli öğe için tarayıcıyı varsayılan alacak

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

.

+0

wow. bunu bilmiyordum. Teşekkürler! – 0100110010101

+3

Seçici ile bunu yapmanın bir yolu yok mu? – BrainSlugs83

+0

ile gerçek mülkün ne olduğunu görebilirsiniz, bilmem gereken şey bu özellik doğrudan ayarlanıyorsa veya css stili/tarayıcıdan miras alınıyorsa ... bu mümkün mü? –

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

Veya, o özelliğine sahiptir elemanı erişmesi gereken ve bir kimliği kullanmadığı takdirde, bu yolu gidebiliriz:

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