Объект Day в Javascript

126
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? Как правильнее делать?

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

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

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

107
event bind mousewheel

event bind mousewheel

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

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

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

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

152