Задать вопрос
@historydev
long long long long long .... int

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

Доброе утро.Пишу фильтр.
Мне нужно чтобы все блоки внутри которых все блоки скрыты, становились невидимыми.
test2233.na4u.ru - здесь можно посмотреть текущую работу кода.
Вот код:

$('.find').click(function() {
  
  var y2 = $('.gnr0').val();
  var y3 = $('.cnt0').val();
  var y4 = $('.sts0').val();
  
  var filter = [y0,y1,y2,y3,y4];
  
  alert(filter);
  
  filter = JSON.stringify(filter); // все элементы массива превращаем в строки

  $('.n_name').css('display','none');
  
$('.n_name').each(function(){

var genres = $(this).data('genre');

if (genres) {

genres = genres.toString().split(','); // split работает со строками

var genreFound = genres.some(
function(item) {

return filter.indexOf(item) !== -1
}
)

if (genreFound) $(this).show()

}

else $(this + '.n_list').hide() //моя жалкая попытка это реализовать(Не работает)
})
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
@sybear
Скрывай всех родителей. Как только есть элемент, который найден, показывай его родителя

$('.n_name').css('display','none');
$('.n_list').hide();

if (genreFound) $(this).show()
$(this).parents('.n_list').show();
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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