Определить, установлено ли для свойства CSS определенное значение? - PullRequest
31 голосов
/ 08 мая 2011

Просто интересно, как определить оператор jQuery, подобный этому

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

По сути, я хочу иметь возможность определить, отображается ли элемент в данный момент или скрывается с помощью атрибута "display: block"?

Ответы [ 3 ]

62 голосов
/ 08 мая 2011

Использование

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

Я уверен, что .css(), возвращая вычисленное значение, всегда будет возвращать результат в нижнем регистре - документы ничего не говорят об этом.Для полной уверенности вы можете сделать

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

, в то время как вы можете положиться на display, дающий надежные результаты, обратите внимание, что некоторые свойства CSS не всегда будут отображаться так, как они были определены .Например,

a { color: red }

получит rgb(255,0,0); при запросе с помощью .css().

9 голосов
/ 08 мая 2011

Вы можете использовать isvisible и скрыт также

if ( $('#test').is(':visible')){
0 голосов
/ 08 мая 2011

Я думаю, что единственный способ проверить это - сравнить с фактическими значениями:

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