Преобразовать строку в число, выполнить математику, затем преобразовать ее обратно и дать диапазону это значение в виде строки

Я пытаюсь взять введенные значения из текстовых полей и преобразовать их в строки, общее количество, а затем установить innerHTML <span> к этому значению.

function addBills(){
    var 
        hundreds = parseInt($("#input100").innerHTML(),10)*100;
        fifties = parseInt($("#input50").innerHTML(),10)*50;
        twenties = parseInt($("#input20").innerHTML(),10)*20;
        tens = parseInt($("#input10").innerHTML(),10)*10;
        fives = parseInt($("#input5").innerHTML(),10)*5;
        ones = parseInt($("#input1").innerHTML(),10);
        regTotal = hundreds+fifties+twenties+tens+fives+ones;
    window.alert(regTotal);
    /*var regTotal = (($("#input100").innerHTML * 100)+($("#input50").innerHTML * 50)+($("#input20").innerHTML * 20)+($("#input10").innerHTML * 10)+($("#input5").innerHTML *5)+($("#input1").innerHTML));*/
    for(var counter = 0;counter<regTotal;counter++){
        regString = regTotal.toString();
        $("#totalCount").innerHTML("regTotal");
    }
};

1 ответ

Решение

Ты делаешь это неправильно

Для начинающих.

function addBills(){
    var 
        hundreds = parseInt($("#input100").innerHTML(),10)*100;

hundreds это единственный местный вар. Все остальные являются глобальными. Исправлено: используйте запятые вместо точек с запятой для разделения переменных в одном выражении var.

Во-вторых, поля ввода имеют value (не innerHTMLи особенно нет innerHTML() как функция).
Значения inputfields всегда текстовые. Их можно преобразовать в числа любым Number(string) или же parseInt(string, radix/base) (или добавив + перед строкой).

Наконец, когда у вас есть элемент span, вы просто делаете: elm_span.innerHTML=yourNumber; а боб твой дядя!

РЕДАКТИРОВАТЬ:
Ваш текущий цикл не имеет смысла.. Я имею в виду, если regTotal это сумма денег... и у вас есть один промежуток с уникальным идентификатором totalCount... это совершенно бессмысленно (так же, как пытаться преобразовать totalCount натянуть пару тысяч раз)

Вы, вероятно, хотите что-то вроде:

function addBills(){
   var hundreds = Number(document.getElementById('input100').value)*100
   ,   fifties = Number(document.getElementById('input50').value)*50
   ,   twenties = Number(document.getElementById('input20').value)*20
   ,   tens = Number(document.getElementById('input10').value)*10
   ,   fives = Number(document.getElementById('input5').value)*5
   ,   ones = Number(document.getElementById('input1').value)
   ,   regTotal = hundreds+fifties+twenties+tens+fives+ones
   ; //end local
   document.getElementById('totalCount').innerHTML=regTotal;
}

Рабочий пример возиться здесь

Надеюсь это поможет!

Другие вопросы по тегам