Frage Jquery: Wie überprüft man, ob das Element eine bestimmte CSS-Klasse / Stil hat?


Ich habe ein div:

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

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

$("#someElement") 

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

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

Vielen Dank!


75
2018-04-17 08:56


Ursprung


Antworten:


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

51
2018-04-17 09:01



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.

Um den einem bestimmten CSS-Eintrag eines Elements zugewiesenen Wert zu erhalten und zu vergleichen:

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

Wenn Sie den Stil nicht neu definiert haben, erhalten Sie den Browser-Standard für dieses bestimmte Element.


250
2018-04-17 09:02



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

12
2018-02-26 12:43



Ich habe eine Lösung gefunden:

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

aber irgendwie glaube ich, dass es einen besseren Weg gibt!


1
2018-04-17 09:01



Oder wenn Sie auf das Element zugreifen müssen, das diese Eigenschaft besitzt und keine ID verwendet, könnten Sie diese Route gehen:

$("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



Wenn Sie jQuery verwenden und nach einem bestimmten Stil überprüfen möchten, wird Ihr Code verwendet

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

& Wenn Sie nach der Klasse suchen möchten,

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



Die Frage verlangt zwei verschiedene Dinge:

  1. Ein Element hat eine bestimmte Klasse
  2. Ein Element hat einen bestimmten Stil.

Die zweite Frage wurde bereits beantwortet. Für den ersten würde ich es so machen:

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

0
2017-07-29 14:22