Если установлен флажок, добавить класс родителю
У меня при клике на чекбокс добавляется класс ко всем родителям с классом "section" а нужно только для родительского блока, подскажите пожалуйста как исправить
$('input:checkbox').change(function() {
if ($(this).is(":checked")) {
$('.section').addClass("checked");
} else {
$('.section').removeClass("checked");
}
});
<div class="section">
<div class="section__item">Какой-то текст</div>
<div class="section__item">
<label class="section__label">
<span>Клик</span>
<input autocomplete="off" type="checkbox" name="form[]">
</label>
</div>
<div class="section__item">Какой-то текст</div>
</div>
<br>
<div class="section">
<div class="section__item">Какой-то текст</div>
<div class="section__item">
<label class="section__label">
<span>Клик</span>
<input autocomplete="off" type="checkbox" name="form[]">
</label>
</div>
<div class="section__item">Какой-то текст</div>
</div>
<br>
<div class="section">
<div class="section__item">Какой-то текст</div>
<div class="section__item">
<label class="section__label">
<span>Клик</span>
<input autocomplete="off" type="checkbox" name="form[]">
</label>
</div>
<div class="section__item">Какой-то текст</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
$('input:checkbox').change(function() {
if ($(this).is(":checked")) {
$(this).closest('.section').addClass("checked");
} else {
$(this).closest('.section').removeClass("checked");
}
});
$('input:checkbox').change(function() {
$(this).closest('.section').toggleClass("checked", $(this).is(":checked"));
});