JavaScript - 添加文本框值并将其存储在数组中

时间:2013-10-13 19:54:37

标签: javascript arrays for-in-loop

我需要纠正一些代码。所以这是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循环将Array中的每个元素连接成一个String变量。但是,还必须在字符串的每个值的末尾粘贴一个
标签,最后一件事就是将这个字符串放在页面末尾的一个段落中。

FIDDLE

1 个答案:

答案 0 :(得分: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