Можно ли проверить, есть ли у элемента CSS display == block
или none
JavaScript?
javascript
css
Сет
источник
источник
currentStyle
? никогда не слышал об этом, также проверилdocument.body.currentStyle
и ничего не получил (не удивился)Если стиль был объявлен встроенным или с помощью JavaScript, вы можете просто добраться до
style
объекта:return element.style.display === 'block';
В противном случае вам придется получить вычисленный стиль, а в браузере будут несоответствия. IE использует простой
currentStyle
объект, но все остальные используют метод:return element.currentStyle ? element.currentStyle.display : getComputedStyle(element, null).display;
null
Требуется в Firefox версии 3 и ниже.источник
===
и!==
».===
а не==
здесь, но в равной степени нет и преимуществ. Оба операнда гарантированно являются строками, поэтому оба оператора выполняют одни и те же действия.Что вы имеете в виду для jQuery?
$('#object').css('display');
Проверить это можно так:
if($('#object').css('display') === 'block') { //do something } else { //something else }
источник
Это не совсем то, что вам нужно, но в некоторых случаях он может быть полезен. Если вы знаете, что элемент имеет некоторые размеры при отображении, вы также можете использовать это:
var hasDisplayNone = (element.offsetHeight === 0 && element.offsetWidth === 0);
РЕДАКТИРОВАТЬ: Почему это может быть лучше, чем прямая проверка
display
свойства CSS ? Потому что вам не нужно проверять все родительские элементы. Если какой-либо родительский элемент имеетdisplay: none
, его дочерние элементы также скрыты, но все еще естьelement.style.display !== 'none'
.источник
да.
var displayValue = document.getElementById('yourid').style.display;
источник
Базовый JavaScript:
if (document.getElementById("elementId").style.display == 'block') { alert('this Element is block'); }
источник
Чтобы узнать, отображается ли он с помощью обычного JavaScript, проверьте, имеет ли свойство display значение «none» (не проверяйте «block», он также может быть пустым или «встроенным» и по-прежнему быть видимым):
var isVisible = (elt.style.display != "none");
Если вы используете jQuery, вы можете использовать это вместо:
var isVisible = $elt.is(":visible");
источник
С чистым javascript вы можете проверить
style.display
свойство. С jQuery вы можете использовать$('#id').css('display')
источник
Вы можете проверить это, например, с помощью jQuery:
$("#elementID").css('display');
Он вернет строку с информацией о свойстве отображения этого элемента.
источник