jQuery, условие Если все div имеют display none то

87
03 сентября 2019, 17:40

Скажите пожалуйста, как написать условие, если у всех div списка стоит display: none то что то сделать, а если не у всех, то ничего не делать. Сейчас имеем такой код:

<div class="line_table">
<div>
</div>
<div>
</div>
<div>
</div>
</div>

При нажатии на кнопку, там происходит поиск слов на совпадение, и к тем div, в которым не нашло совпадение по словам, присваивает style: diplay: none. Я написал вот такой скрипт:

    $(".bottom_line_table > div").each(function() {
    if ($(this).css("display") == "none") {
       $('.not_found_table').fadeIn('slow');
    } else {
    }
});

Но он срабатывает всегда, даже если в списке есть div, с display: block.

Answer 1

Чтобы проверить, что невидимы все, нужно взять всех, выбрать из них те, который невидимы и сравнить количество.

var all = $(".bottom_line_table > div");
var hidden = all.filter(function(){ return ($(this).css("display") == "none"); })
if (all.length == hidden.length){
   // выполняем нужные действия
}
READ ALSO
Удаление пользователя ASP.NET Identity

Удаление пользователя ASP.NET Identity

Пытаюсь удалить пользователя:

88
Получение свойства элемента по клику

Получение свойства элемента по клику

Есть Grid, на нем расположены в виде DataGrid информация для пользователя только стилизовано, использовать стандартный datagrid не захотелВнутри ячеек...

97
Перехват исключений в фильтре

Перехват исключений в фильтре

Приложение ASPNET MVC Методы контроллера разные:

92
Передача модели из ajax запроса в экшен

Передача модели из ajax запроса в экшен

Есть проблема с передачей данных из ajax запроса в экшен контроллера

89