2009-04-17 12 views
72

Mam Div:Jquery: Jak sprawdzić, czy element ma pewną klasę CSS/styl

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

Czy istnieje jakiś sposób, aby sprawdzić, czy określony element:

$("#someElement") 

ma szczególny klasa (w moim przypadku "test").

Alternatywnie, czy istnieje sposób sprawdzenia, czy element en ma określony styl? W tym przykładzie chciałbym wiedzieć, czy element ma "position: absolute".

Dziękuję bardzo!

+14

nie wiem, czy it'sd pytanie czy ten Odpowiedź jest błędna, ale pytanie ma styl = "test", a odpowiedź szuka klasy = "test" – wheresrhys

+1

Zgaduję, że pytanie jest błędne, ponieważ uznał błędną odpowiedź za słuszną; ale niezależnie od tego, patrząc na głosy, myślę, że większość ludzi natknęła się tutaj szukając poprawnej odpowiedzi na to niewłaściwe pytanie ... e, jeśli to ma sens ... Odpowiedź od DrJokepu, mam na myśli. To dlatego jestem tutaj przynajmniej. – BrainSlugs83

Odpowiedz

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

dziękuję bardzo. idealne rozwiązanie – 0100110010101

+56

To nie odpowiada na pytanie zadane - patrz odpowiedź DrJokepu poniżej. –

+0

działa idealnie dla mnie dzięki :) – Rajnikanth

1

Znalazłem jedno rozwiązanie:

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

ale jakoś wierzę, że istnieje lepszy sposób!

241

Style CSS to pary klucz-wartość, a nie tylko "tagi". Domyślnie każdy element ma przypisany pełny zestaw stylów CSS, większość z nich domyślnie używa domyślnych ustawień przeglądarki, a niektóre z nich są wyraźnie redefiniowane w arkuszach stylów CSS.

Aby uzyskać wartość przypisaną do danego wpisu CSS elementu i porównać go:

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

Jeśli nie przedefiniować styl, dostaniesz domyślną przeglądarkę dla danego elementu.

+0

wow. tego nie wiedziałem. dziękuję !! – 0100110010101

+3

Nie można tego zrobić za pomocą selektora? – BrainSlugs83

+0

z tym możesz zobaczyć jaka jest rzeczywista właściwość, co muszę wiedzieć, czy ta właściwość jest ustawiana bezpośrednio, czy jest dziedziczona ze stylu css/przeglądarki ... czy to możliwe? –

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

Albo, jeśli chcesz uzyskać dostęp do elementu, który ma tę właściwość i nie korzysta z identyfikatora, można przejść tę trasę:

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