我在这里是个菜鸟,所以希望我已经提供了足够的信息。 我有一项任务要求我制作一个执行以下操作的JavaScript应用程序...
书店需要跟踪一天销售的书籍数量和每本书的价格。 使用要求用户的数组创建应用程序:
我的HTML中有3个带有ID的div - "nameOfBook"
,"priceOfBook"
和"displayTotal"
。
我创建了两个用于循环的数组,以在页面上显示"nameOfBook"
和"priceOfBook"
。
我遇到的问题是让它添加书籍的价格并将此总额显示给我的"displayTotal"
div。
这是JS ..
function addBooks()
{
var nameBook = new Array();
for(i=0; i<5; i++)
{
nameBook = prompt("Enter name of Book","");
document.getElementById("nameOfBookDiv").innerHTML += nameBook + "<br>";
var priceBook = new Array();
priceBook = prompt("Enter price of Book","");
document.getElementById("priceOfBookDiv").innerHTML += priceBook + "<br>";
}
var total = 0;
for(var i in priceBook)
{
total += priceBook[i];
parseFloat(document.getElementById("displayTotal").innerHTML += total);
}
}
答案 0 :(得分:0)
我这样改了:
function addBooks() {
var nameBook = new Array();
var priceBook = new Array();
for (i = 0; i < 5; i++) {
var bookName = prompt("Enter name of Book");
nameBook.push(bookName);
var bookPrice;
while (isNaN(parseInt(bookPrice = prompt("Enter price of Book")))) {
alert("Enter a valid number as a price!")
}
priceBook.push(parseInt(bookPrice));
}
document.getElementById("nameOfBookDiv").innerHTML += nameBook.join("<br>");
document.getElementById("priceOfBookDiv").innerHTML += priceBook.join("<br>");
var total = 0;
for (var i = 0; i < priceBook.length; i++) {
total += priceBook[i];
}
document.getElementById("displayTotal").innerHTML = parseFloat(total);
}
这是你的工作DEMO
答案 1 :(得分:0)
以下是代码中的一些逻辑错误:
nameBook
定义为数组(您不需要存储所有书名)priceOfBookDiv
并将此值添加到总数中。displayTotal
div(在您的示例中打印总值的部分结果)这是一个有效的code:
function addBooks()
{
var total = 0;
for(i=0; i<5 ; i++)
{
var nameBook = prompt("Enter name of Book","");
document.getElementById("nameOfBookDiv").innerHTML += nameBook + "<br>";
var priceBook = parseInt(prompt("Enter price of Book",""));
document.getElementById("priceOfBookDiv").innerHTML += priceBook + "<br>";
total += priceBook;
}
parseFloat(document.getElementById("displayTotal").innerHTML += total);
}
答案 2 :(得分:0)
我认为你有一些基本的编程问题; “分配”变量意味着什么?如何存储一组值以供以后在程序中使用?
您正在prompt("Enter price of Book", "");
内记录图书的价格。
您要做的是修改priceOfBookDiv innerHTML以显示您已完成的提示中输入的价格,但是您忘记将提示的值存储在值集合中以供稍后使用。最简单的方法是使用Array。
var arrayOfPrices = [];
for (var i=0; i<5; i++) {
...
var priceOfSingleBook = prompt("Enter price of Book", "");
document.getElementById("priceOfBookDiv").innerHTML += priceOfSingleBook;
arrayOfPrices.push(priceOfSingleBook);
}
var total = 0;
for (var i in arrayOfPrices) {
total += arrayOfPrices[i];
...
}