Как проверить, скрыт ли элемент в jQuery?
Можно переключить видимость элемента, используя функции .hide()
, .show()
или .toggle()
.
Как бы вы протестировали, если элемент виден или скрыт?
Решение 1:
Поскольку вопрос относится к одному элементу, этот код может быть более подходящим:
// Checks css for display:[none|block], ignores visibility:[true|false] $(element).is(":visible"); // The same works with hidden $(element).is(":hidden");
Решение 2:
Вы можете использовать селектор hidden
:
// Matches all elements that are hidden $('element:hidden')
И visible
селектор:
// Matches all elements that are visible $('element:visible')
Решение 3:
if ( $(element).css('display') == 'none' || $(element).css("visibility") == "hidden"){ // element is hidden }
Выше метод не учитывает видимость родителя. Чтобы рассмотреть и родителя, вы должны использовать .is(":hidden")
или .is(":visible")
.
Например,
<div id="div1" style="display:none"> <div id="div2" style="display:block">Div2</div> </div>
Приведенный выше метод будет считать div2
видимым, а :visible
нет. Но вышеупомянутое может быть полезно во многих случаях, особенно когда вам нужно выяснить, есть ли какие-либо ошибки div, видимые в скрытом родительском элементе, потому что в таких условиях :visible
не будет работать.