Jquery:如何检查元素是否具有某些css类/样式

时间:2009-04-17 08:56:30

标签: javascript jquery css

我有一个div:

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

有没有办法检查某个元素:

$("#someElement") 

有一个特定的类(在我的例子中,“test”)。

或者,有没有办法检查en元素是否具有某种风格?在这个例子中,我想知道元素是否有“position: absolute”。

非常感谢!

6 个答案:

答案 0 :(得分:266)

CSS样式是键值对,而不仅仅是“标签”。默认情况下,每个元素都分配了一整套CSS样式,其中大多数是隐式使用浏览器默认值,其中一些在CSS样式表中显式重新定义。

获取分配给元素的特定CSS条目的值并进行比较:

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

如果您没有重新定义该样式,您将获得该特定元素的浏览器默认值。

答案 1 :(得分:56)

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

答案 2 :(得分:12)

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

答案 3 :(得分:2)

或者,如果您需要访问具有该属性但不使用id的元素,您可以选择以下路径:

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

答案 4 :(得分:1)

我找到了一个解决方案:

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

但不知怎的,我相信有更好的方法!

答案 5 :(得分:0)

问题要求两件事:

  1. 元素具有特定的类
  2. 元素具有某种风格。

第二个问题已经回答。对于第一个,我会这样做:

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