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