2011-05-08 82 views
23

只是想知道如何判断一个jQuery的声明这样确定CSS属性是否为某个值?

if($("#test").css('display', 'block') == true) { 
    return true; 
} 

基本上,我希望能够确定如果一个元素当前显示或通过隐藏“显示:块”属性?

回答

46

使用

if($("#test").css('display') == 'block') { 

我相当肯定.css(),返回一个计算值,总是返回小写的结果 - 文档说这个没什么。为了完全确定,你可以做一个

if($("#test").css('display').toLowerCase() == 'block') { 

,而你可以依靠display给予可靠的结果,注意一些CSS属性不会总是出现,他们被定义的方式。例如使用.css()查询时

a { color: red } 

会变成rgb(255,0,0);

+0

嗨佩卡 - 只是想知道为什么不工作? http://jsfiddle.net/eEF9Y/ – Tom 2011-05-08 17:47:32

+0

@你正在检查'test1'是否有'display:none',它没有。你的意思是'display!='block''? – 2011-05-08 17:49:02

+0

@Pekka - 感谢您的回应:)那么,我想检查#test是否是块 - 如果它是块然后显示test1? – Tom 2011-05-08 17:49:53

0

我想对此进行测试的唯一方法是通过与实际值进行比较:

function displayHidden(elem) { 
    return $(elem).css('display') === 'hidden'; 
} 
6

您可以使用可见性,也隐藏

if ($('#test').is(':visible')){ 
+3

如果能见度是你想要确定的,这实际上会更好,+1 – 2011-05-08 17:10:03

相关问题