Объект Day в Javascript

120
29 июля 2019, 19:00

Здравствуйте есть код калькулятора в нем есть обЪект с датом в цикле он работает а вне цикла нет не могу понять в чем пробелма вот код который работает

function Calculator(){
        var sum = document.getElementsByClassName("calc-summ"),
            input = document.getElementsByClassName("calc-input"),
            dataBack = document.getElementsByClassName("data")[0],
            month = ['Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Ноября','Декабря',],
            calcEqual = document.getElementsByClassName("calc-equal")[0];
     for(let i=0; i<input.length; i++){
         input[i].oninput = function(event){
             if(i == 0){
                 sum[i].innerHTML = this.value + " ₸";
            }
             else{   var day, D = new Date();
                     sum[i].innerHTML = this.value;
                     D.setDate(D.getDate() + parseInt(input[1].value));
                     if(D.getDate() >= 9){day = D.getDate();}
                     else{day = "0" + D.getDate();}
             dataBack.innerHTML = day  + " | " + month[D.getMonth()] + " | " + D.getFullYear() + " года";
                 }
             var oneProcent = parseInt(input[0].value)/100,
                 equalProcent = oneProcent+parseInt(input[0].value),
                 summa = (oneProcent*parseInt(input[1].value))+parseInt(input[0].value);
             calcEqual.innerHTML = summa.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " ₸";
         }
     }
};

Вот код который не работает точнее он работает но день там высчитавает неправильно и все потому что объект Day создается вне цикла

function Calculator(){
        var sum = document.getElementsByClassName("calc-summ"),
            input = document.getElementsByClassName("calc-input"),
            dataBack = document.getElementsByClassName("data")[0],
            month = ['Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Ноября','Декабря',],
            calcEqual = document.getElementsByClassName("calc-equal")[0],
            day,
            den = new Date();
            dataBack.innerHTML = (den.getDate()+parseInt(input[1].value)) + " " + month[den.getMonth()] + " " + den.getFullYear() + " года";;
     for(let i=0; i<input.length; i++){
         input[i].oninput = function(event){
             if(i == 0){
                 sum[i].innerHTML = this.value + " ₸";
            }
             else{   
                     sum[i].innerHTML = this.value;
                     den.setDate(den.getDate() + parseInt(this.value));
                     if(den.getDate() >= 9){day = den.getDate();}
                     else{day = "0" + den.getDate();}
                     dataBack.innerHTML = day  + " | " + month[den.getMonth()] + " | " + den.getFullYear() + " года";
                 }
             var oneProcent = parseInt(input[0].value)/100,
                 equalProcent = oneProcent+parseInt(input[0].value),
                 summa = (oneProcent*parseInt(input[1].value))+parseInt(input[0].value);
             calcEqual.innerHTML = summa.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " ₸";
         }
     }
};

Вот именно в этом коде не работает хотя в первом работает тоесть когда в этом цикле я активирую событие oninput то дни высчитываются не правильно

READ ALSO
Проверка условия на false

Проверка условия на false

Как корректно проверить если элемент не содержит например класс active? Как правильнее делать?

143
Можно ли использовать for в render

Можно ли использовать for в render

Хочу пройтись и данным и вывести все элементыНо жалуется на Data

102
event bind mousewheel

event bind mousewheel

почему в else срабатывает один раз $("cards")

96
Как в phpMyAdmin создать произвольное поле &ldquo;photobox&rdquo;сразу для всех постов Wordpress?

Как в phpMyAdmin создать произвольное поле “photobox”сразу для всех постов Wordpress?

Как в phpMyAdmin создать произвольное поле "photobox"сразу для всех постов Wordpress? Мысль в чем

146