Используя jQuery для выбора объектов, которые имеют стиль, отображаются “visibility:visible” или “visibility:hidden” НЕ “: ни один”

Как Вы выбираете только видимые элементы с помощью jQuery?

селекторы jQuery: видимый и: скрытый только уважает display:none, как действительно скрытый? НЕ visibility:hidden или visibility:visible.

Я понимаю, что они не технически скрыты, потому что они все еще занимают свое место. Я просто хочу знать их состояние, таким образом, я могу проверить флажки, которые видимы.




jQuery :visiblity Selector Test








visibility: hidden;
visibility: visible;
display: none;
display: inline;
Visible Count:
Hidden Count:

16
задан Community 23 May 2017 в 12:25
поделиться

2 ответа

Вы можете использовать функцию css , чтобы получить стиль элемента, и фильтр функция для их выбора из набора элементов:

var visible = $('input[type=checkbox]').filter(function() {
   return !($(this).css('visibility') == 'hidden' || $(this).css('display') == 'none');
});
42
ответ дан 30 November 2019 в 15:20
поделиться

Из примечания к выпуску jQuery 1.3.2 (: visible /: hidden Переработано):

  • В jQuery 1.3.1 ( и старше) элемент был видимым, если его CSS
    "display" не был "none", его CSS
    "visibility" не был "скрытым" и
    его тип (если это был ввод) не был "скрытым".
  • В jQuery 1.3.2 элемент отображается, если его значение offsetWidth или offsetHeight, сообщенное браузером, больше 0.

Что означает это изменение? Это означает , что если отображение CSS вашего элемента "none", или отображение любого из его родительских / предковых элементов равно "none", или если ширина элемента равна 0, а высота элемента равна 0, тогда элемент будет отмечен как скрытый.

11
ответ дан 30 November 2019 в 15:20
поделиться
Другие вопросы по тегам:

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