@CreativeStory

Как исключить последовательность выполнения функций?

Как можно обойти последовательное выполнение функций?

Столкнулся с проблемой. В скрипте есть 2 функции, которые выполняются последовательно.
Но если первая функция false(не находит требуемых значений), то вторая не работает.
Нужно если первая не отрабатывает, то она не мешает второй запускаться..

Сами виновники:
resKolichestvoSpalen.forEach(function(item, i, resKolichestvoSpalen) {
    document.getElementById("kolichestvo-spalen-value-" + item).checked = true;
}); 

resKolichestvoEtazhey.forEach(function(item, i, resKolichestvoEtazhey) {
    document.getElementById("kolichestvo-etazhey-value-" + item).checked = true;
});
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Видимо, вылетает ошибка, когда document.getElementById() на находит элемента с данным id – ведь вы тут же пытаетесь изменить свойство checked.

Варианта два:
  1. проверять, нашелся ли элемент и только тогда ставить checked;
  2. обернуть каждую функцию в try .. catch


Лучше первый вариант:
function setCheck(arr, prefix) {
  arr.forEach( item => {
    const el = document.getElementById(prefix + item);
    if (el && el.hasOwnProperty("checked")) el.checked = true;
  });
}

setCheck (resKolichestvoSpalen, "kolichestvo-spalen-value-");
setCheck (resKolichestvoEtazhey, "kolichestvo-etazhey-value-");
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
27 нояб. 2024, в 19:08
1500 руб./в час
27 нояб. 2024, в 18:19
2000 руб./за проект