JavaScript - добавление значений текстового поля для сохранения его в массиве

Мне нужно исправить код. Итак, вот JS:

var $ = function (id) {
    return document.getElementById(id);
}
var myTransaction = new Array[];

function processInfo() {
    var myItem = $('item').value;
    var myAmount = parseFloat($('amount').value);
    var myTotal = myItem + ":" + myAmount;

    var myParagraph = $('message');

    myParagraph.innerHTML = myTransaction;


    for (var theTotal in myTransaction) {
        myTransaction += addTogether[theTotal] + "<br>";
    }
}


window.onload = function () {
    $("addbutton").onclick = processInfo;
}

и HTML

<section>
    <p>Item:
        <input type="text" id="item" size="30">
        <p>Amount:
            <input type="text" id="amount" size="30">
            <p><span id="message">*</span>

                <p>
                    <input type="button" id="addbutton" value="Add Item" onClick="processInfo();">
</section>

Что мне нужно сделать, это получить значения текстовых полей и сложить их вместе в одну переменную, а затем сохранить его в массив. Затем используйте цикл for-in, чтобы объединить каждый элемент в массиве в одну строковую переменную. Тем не менее, должны также придерживаться
тег в конце каждого значения в строке, последняя вещь - поместить эту строку в абзац в конце страницы.

FIDDLE

1 ответ

Решение

Если я вас понимаю, посмотрите на мою редакцию своего кода: если вы не понимаете что-то с помощью кода, спросите меня.

Сначала вы забыли закрыть с ; функция $, Затем вы создаете массив с плохим синтаксисом. в-третьих, вы вызываете массив addTogether, который не существует. это фиксированный код, который я верю, работая так, как вы просили.

var $ = function(id) {
    return document.getElementById(id);
};

var myTransaction = [];

function processInfo ()
{    
     var myItem = $('item').value;
     var myAmount = parseFloat($('amount').value);
     var myTotal = myItem + ":" + myAmount;
     var myParagraph = $('message');    

     myParagraph.innerHTML = "";
     myTransaction.push(myTotal);
     for (var theTotal in myTransaction)
     {
          myParagraph.innerHTML += myTransaction[theTotal] + "<br>"; 
     }

};

(function () {
    $("addbutton").onclick = processInfo;

})();

редактировать
Мохамед-Тед предлагает: вместо:

for (var theTotal in myTransaction)
{
     myParagraph.innerHTML += myTransaction[theTotal] + "<br>"; 
}

вы можете сделать это:

myParagraph.innerHTML += myTransaction.join("<br>"); 

см пример на:
jsFiddle

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