Как составить условие, содержит ли в себе блок, определенные элементы с классом?

на странице есть <div id="response"> он при загрузки страницы пустой, но после нажатия по кнопки применить фильтры, по ajax он наполняется (а может и нет) <div class="slider__item">как мне написать такое условие, если <div id="response"> имеет >= 2 <div class="slider__item">, то к <div id="response"> добавляется класс, если меньше 2, то класс удалить. Пробовал так, но почему то не работает, это может быть связано с ajax подгрузкой?

var div = $('#response').has('.slider__item').index();

        if(div>=0){
            $('#response').addClass('active');
        };

Ответы (1 шт):

Автор решения: Aziz Umarov

Примерно можно сделать так

let div = $('#response');

let count = $('.slider__item', div).length;

или так

let count = $('#response > .slider__item').length;

$('#add').on("click", ()=> {  
  let element = document.createElement("div");  // Create with DOM
  $(element).addClass("slider__item");
  $(element).text("Text");
  $('#response').append(element); 
})



$('#count').on("click", ()=> {
  let div = $('#response');
  let element = document.createElement("div");  // Create with DOM
  $(element).addClass("slider__item");
  let count = $('.slider__item', div).length;  
  console.log(count);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="add">Add</button>
<button id="count">Count</button>

<div id="response">

</div>

Далее смотрим на количество и делаем что желаете

→ Ссылка