Не совсем понятно, что вы пытаетесь сделать, но после прочтения вашего вопроса несколько раз я думаю, что вам нужна логика, подобная этой.Если у объекта .container
есть объект где-либо с классом .item7
, то скрыть родительский объект .container
.Если это то, что вы действительно пытаетесь сделать, вы можете сделать это следующим образом:
$('.container .item7').closest('.container').hide();
Это найдет любые .item7
объекты, которые находятся в .container
, а затем скроет ближайший .container
родительский объект каждого совпадения.
Если есть .container
, который не содержит .item7
, он не будет затронут.Если есть .item7
, которого нет в .container
, он не будет затронут.
Если может быть несколько уровней контейнеров, и вы хотите скрыть их все, вы можете сделать это следующим образом:
$('.container .item7').parents('.container').hide();
Это находит все .item7
объект и затем скрывает любых .container
родителей.
Мой предпочтительный способ сделать это на самом деле это.Это было бы более эффективно, если бы было всего несколько .container
объектов, но много .item7
объектов:
$('.container').has('item7').hide();
Это говорит о том, чтобы найти каждый .container
объект.Затем в этом результирующем объекте jQuery (из всех .container
объектов) удалите любой .container
объект, у которого нет потомка .item7
, а затем скройте напоминающие .container
объекты.