2009-04-17 63 views
72

我有一个div:jQuery的:如何检查,如果该元素具有一定的CSS类/风格

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

有没有什么办法来检查,如果某些元素:

$("#someElement") 

具有特定班级(在我的情况下,“测试”)。

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

非常感谢!

+14

不知道it'sd问题或答案是错的,但问题有style =“test”,答案是寻找class =“test” – wheresrhys 2009-04-17 09:26:56

+1

我的猜测是,问题是错误的,因为他把错误的答案标记为正确;但是无论在看票后,我认为大多数人都在这里寻找正确的答案来寻找这个错误的问题......呃,如果这是有道理的...... DrJokepu的答案,我的意思是。这就是为什么我至少在这里。 – BrainSlugs83 2012-06-19 07:04:42

回答

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

非常感谢。 完美解决方案 – 0100110010101 2009-04-17 09:14:52

1

我找到了一个解决办法:

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

但不知何故,我相信有一个更好的办法!

241

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

要获得分配给元素的特定CSS项的值,并进行比较:

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

如果你没有重新定义样式,你会得到该特定元素的浏览器的默认。

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

或者,如果你需要访问具有该属性的元素,它不使用一个id,你可以走这条路:

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