Как составить условие, содержит ли в себе блок, определенные элементы с классом?
на странице есть <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>
Далее смотрим на количество и делаем что желаете