web-dev-qa-db-fra.com

Jquery: Comment vérifier si l'élément a un certain style/classe css

J'ai un div:

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

Est-il possible de vérifier si l'élément certain:

$("#someElement") 

a une classe particulière (dans mon cas, "test").

Sinon, y a-t-il un moyen de vérifier que l'élément en a un certain style? Dans cet exemple, j'aimerais savoir si l'élément a "position: absolute".

Merci beaucoup!

79
0100110010101
if($('#someElement').hasClass('test')) {
  ... do something ...
}
else {
  ... do something else ...
}
54
Darin Dimitrov

Les styles CSS sont des paires clé-valeur, pas seulement des "balises". Par défaut, chaque élément est associé à un ensemble complet de styles CSS. La plupart d'entre eux utilisent implicitement les paramètres par défaut du navigateur et certains d'entre eux sont explicitement redéfinis dans les feuilles de style CSS.

Pour obtenir la valeur attribuée à une entrée CSS particulière d'un élément et la comparer:

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

Si vous n'avez pas redéfini le style, vous obtiendrez la valeur par défaut du navigateur pour cet élément particulier.

264
Tamas Czinege
if ($("element class or id name").css("property") == "value") {
    your code....
}
12
Sandeep Gupta

j'ai trouvé une solution:

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

mais d'une certaine manière, je crois qu'il existe un meilleur moyen!

1
0100110010101

Ou, si vous avez besoin d'accéder à l'élément qui possède cette propriété et qu'il n'utilise pas d'identifiant, vous pouvez choisir l'itinéraire suivant:

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

La question demande deux choses différentes: 

  1. Un élément a une certaine classe
  2. Un élément a un certain style.

La deuxième question a déjà été répondue. Pour le premier, je le ferais de cette façon:

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