2009-04-17 8 views
72

hat habe ich ein div:JQuery: Wie kann man überprüfen, ob das Element bestimmte CSS-Klasse/style

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

Gibt es eine Möglichkeit, wenn das bestimmte Element zu überprüfen:

$("#someElement") 

hat eine besondere Klasse (in meinem Fall "Test").

Alternativ, gibt es eine Möglichkeit zu überprüfen, dass en Element einen bestimmten Stil hat? In diesem Beispiel würde ich gerne wissen, ob das Element "position: absolute" hat.

Vielen Dank!

+14

nicht sicher, ob it'sd die Frage oder die antwort das ist falsch, aber die frage hat style = "test", und die antwort sucht nach class = "test" – wheresrhys

+1

Meine Vermutung ist, die Frage ist falsch, da er die falsche Antwort als richtig markiert hat; Aber nachdem ich die Stimmen angeschaut habe, denke ich, dass die meisten Leute hier reingestolpert sind, um nach der richtigen Antwort auf diese falsche Frage zu suchen ... ähm, wenn das irgendeinen Sinn ergibt ... Die Antwort von DrJokepu, meine ich. Deshalb bin ich wenigstens hier. – BrainSlugs83

Antwort

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

vielen Dank. perfekte Lösung – 0100110010101

+56

Dies beantwortet die Frage nicht wie gefragt - siehe DrJokepus Antwort unten. –

+0

funktioniert perfekt für mich danke :) – Rajnikanth

1

ich habe eine Lösung gefunden:

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

aber irgendwie glaube ich, dass es eine bessere Art und Weise!

241

CSS-Stile sind Schlüssel-Wert-Paare, nicht nur "Tags". Standardmäßig wird jedem Element ein vollständiger Satz von CSS-Stilen zugewiesen. Die meisten davon verwenden implizit die Standardwerte des Browsers, und einige davon werden in CSS-Stylesheets explizit neu definiert.

den Wert zu einem bestimmten CSS Eintrag eines Elements zugewiesen bekommen und vergleichen sie:

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

Wenn Sie nicht den Stil neu zu definieren haben, erhalten Sie den Standard-Browser für das jeweilige Element.

+0

wow. Ich wusste das nicht. danke !! – 0100110010101

+3

Es gibt keine Möglichkeit, dies mit einem Selektor zu tun? – BrainSlugs83

+0

mit diesem können Sie sehen, was ist die tatsächliche Eigenschaft, was ich wissen muss, ob diese Eigenschaft direkt gesetzt wird oder ist es von CSS-Stil/Browser geerbt ... ist das möglich? –

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

Oder, wenn Sie das Element zugreifen müssen, die diese Eigenschaft hat und es nicht eine ID nicht verwenden, können Sie diesen Weg gehen:

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