Как Вы выбираете только видимые элементы с помощью jQuery?
селекторы jQuery: видимый и: скрытый только уважает display:none, как действительно скрытый? НЕ visibility:hidden или visibility:visible.
Я понимаю, что они не технически скрыты, потому что они все еще занимают свое место. Я просто хочу знать их состояние, таким образом, я могу проверить флажки, которые видимы.
jQuery :visiblity Selector Test
visibility: hidden;
visibility: visible;
display: none;
display: inline;
Visible Count:
Hidden Count:
Вы можете использовать функцию css
, чтобы получить стиль элемента, и фильтр
функция для их выбора из набора элементов:
var visible = $('input[type=checkbox]').filter(function() {
return !($(this).css('visibility') == 'hidden' || $(this).css('display') == 'none');
});
Из примечания к выпуску 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, тогда элемент будет отмечен как скрытый.