2013-10-13 101 views
0

我需要更正一些代碼。因此,這裏是JS:JavaScript - 添加文本框值並將其存儲在數組中

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變量。但是,還必須在每個值的末尾粘貼一個
標籤,最後一件事就是將該String放在頁面末尾的一個段落中。

FIDDLE

+0

是的,我知道我刪除了我的評論。 – Dvir

+0

我無法弄清楚你想要做什麼。沒有數組「addTogether」。首先你將'myTransaction'設置爲一個空數組(除非這是不正確的語法)。然後你把它放到'myParagraph.innerHTML'中,但只有它包含一個字符串纔有意義。然後你遍歷空數組,並將該變量賦值爲它再次包含一個字符串。它沒什麼意義,我不知道從哪裏開始修復它。 – Barmar

+0

你說你需要存儲一些東西,但爲什麼你需要這樣做?數組用於重複數據,但只有一個項目。 – Barmar

回答

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

+1

如果您使用for循環只是將數組元素連接到一個字符串中,則可以使用myParagraph.innerHTML = myTransaction.join(「
」) –

+0

來接受並更新它。 – Dvir

相關問題