HTML: <input type="checkbox" class="filter" /> <?php foreach ( $get_clients as $key => $val ) { ?> <div <?php echo ($val['filter'] == '2') ? 'id="filter"' : '' ?> > <?php echo htmlspecialchars($val['name']) ?> </div> <?php } ?> Код (Javascript): $(function () { $('.filter').change(function () { $('#filter').toggle(this.checked); }).change(); }); Добрый. Нужно чтобы при включении чекбокса, показывались все ($val['filter'] == '2'), а при отключении, соответственно, скрывались. Приведенный код, скрывает/показывает только один элемент, а не проходит по всему циклу. Просьба подсказать решение.
Похоже ты в цикле создаёшь один и тот же id? Это неправильно, идентификатор должен быть только в единственном числе на странице. Так работают с class, а не с id! К классу соответственно подойдёт селектор Код (Text): ...'class="filter"' ... $('.filter')
@Horus1613, примерчик: Спойлер HTML: <input type="checkbox" id="filter"> <div class="filter" data-value="2">1</div> <div class="filter" data-value="1">2</div> <div class="filter" data-value="2">3</div> <div class="filter" data-value="1">4</div> <div class="filter" data-value="2">5</div> <script> $('#filter').change(function () { if(this.checked) { $('.filter[data-value="2"]').hide(); } else { $('.filter[data-value="2"]').show(); } }).change(); </script>
Большое спасибо! --- Добавлено --- Спасибо! Но этот код почему-то не заработал. Сделал, как было у меня, только id поменял на class