Как проверить, скрыт ли элемент в jQuery?

Можно переключать видимость элемента, используя функции .hide(), .show() или .toggle()?

Как бы вы проверили, является ли элемент видимым или скрытым?

7380
задан buræquete 18 July 2019 в 10:40
поделиться

3 ответа

Так как вопрос относится к единственному элементу, этот код мог бы более подойти:

// Checks css for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible"); 

// The same works with hidden
$(element).is(":hidden"); 

То же как предложение twernt, но относившийся единственный элемент; и это соответствия алгоритм рекомендовано в jQuery FAQ

9059
ответ дан Black 18 July 2019 в 10:40
поделиться

Можно использовать hidden селектор:

// Matches all elements that are hidden
$('element:hidden')

И visible селектор:

// Matches all elements that are visible
$('element:visible')
1403
ответ дан twernt 18 July 2019 в 10:40
поделиться
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 нет. Но вышеупомянутое могло бы быть полезным во многих случаях, особенно когда необходимо найти, существуют ли какие-либо ошибочные отделения, видимые в скрытом родителе, потому что в таких условиях :visible не будет работать.

892
ответ дан Shadow 18 July 2019 в 10:40
поделиться
  • 1
    Да, нет никакой потребности использовать " Convert". спасибо @tnw – Ishan Jain 27 January 2014 в 18:04
Другие вопросы по тегам:

Похожие вопросы: