des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

JS сложное условие в цикле?

Не знаю, насколько задача тривиальна - суть в следующем - при отжатии кнопки чекбокса нужно проверить, отжаты ли остальные кнопки и в зависимости от этого отжимать кнопку предка.
Знаю текущее значение кнопки, знаю имя предка. Нужно пробежаться циклом и проверить у всех ли потомков отжат чекбокс. И соотвественно условие будет меняться от раза к разу, так как везде разное количество потомков.
Как это реализовать?
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Может вам это нужно: дерево с чекбоксами
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
standy
@standy
Если есть jquery, вы можете проверить состояние группы инпутов-потомков так:
$parent.find('input:checked').length; // количество нажатых инпутов
$parent.find('input:not(:checked)').length; // количество отжатых нпутов


Если без jquery, то тоже самое можно сделать с помощью document.querySelectorAll. Сработает даже в ie9.
Ответ написан
Комментировать
попробуй написать рекурсивную функцию
перебор начинаем с верхнего уровня, проверяя чекбокс на отжатие так же проверяем есть ли у него потомки, если есть функция вызывает саму себя с передачаей в аргументах группу потомков которую следует проверить. и возвращаем булевые значения
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы