我正在尝试创建用于计算利润的JavaScript。我基本上有一个HTML按钮,每次按该按钮时都会在表中添加数字100,然后您会自动计算使用其他变量(例如价格和成本)所获得的利润。我现在要使它执行的操作是保存鲨鱼的数量(这是我在桌子上使用的资源),因此,如果刷新网站,该数量仍然存在。我使用过localStorage,但没有成功。这是我目前拥有的代码。
var shark = [localStorage.getItem('amountShark'), 993, 0, 993]
function addSharks()
{
var sharkstoadd = 100;
shark[0] += 100;
shark[3] = shark[0] * (shark[1] - shark[2])
document.getElementById("sharkAmount").innerHTML = shark[0];
document.getElementById("sharkPrice").innerHTML = shark[1];
document.getElementById("sharkCost").innerHTML = shark[2];
document.getElementById("sharkProfit").innerHTML = shark[3];
localStorage.setItem('amountShark', shark[0]);
}
我得到的问题是保存的数据是字符串而不是数字,所以如果我想将100添加到本地存储中,则不会这样添加100 + 100 = 100100,而不是这样100 + 100 = 200。不要在array / shark [0]中使用localStorage.getItem('amountShark'),以正确的方式添加数据。正如我之前所说,那是因为数据存储为字符串。我想知道是否有办法解决此问题,最终目标是在屏幕上显示一个数字,并且在刷新站点时该数字仍然存在,因此我还需要能够通过按一个按钮来添加100在网站上,刷新时也需要保存。
编辑:
通过执行此操作并添加parseInt来解决此问题
var shark = [parseInt(localStorage.amountShark, 10), 993, 0, 993]
function addSharks()
{
var sharkstoadd = 100;
shark[0] += 100;
shark[3] = shark[0] * (shark[1] - shark[2])
document.getElementById("sharkAmount").innerHTML = shark[0];
document.getElementById("sharkPrice").innerHTML = shark[1];
document.getElementById("sharkCost").innerHTML = shark[2];
document.getElementById("sharkProfit").innerHTML = shark[3];
localStorage.setItem('amountShark', shark[0]);
}
现在唯一的事情是更新浏览器时,该数字直到我再添加一百后才会显示。
编辑2:
弄清楚如何在输入第一个编辑内容时解决该问题,不知道这是否是编写它的最佳方法,但它可以成功,所以很成功:)
var shark = [parseInt(localStorage.amountShark, 10), 993, 0, 993]
document.getElementById("sharkAmount").innerHTML = shark[0];
shark[3] = shark[0] * (shark[1] - shark[2])
document.getElementById("sharkProfit").innerHTML = shark[3];
function addSharks()
{
var sharkstoadd = 100;
shark[0] += 100;
shark[3] = shark[0] * (shark[1] - shark[2])
document.getElementById("sharkAmount").innerHTML = shark[0];
document.getElementById("sharkPrice").innerHTML = shark[1];
document.getElementById("sharkCost").innerHTML = shark[2];
document.getElementById("sharkProfit").innerHTML = shark[3];
localStorage.setItem('amountShark', shark[0]);
}
感谢您的帮助:)
答案 0 :(得分:1)
使用parseInt()将字符串转换为数字。目前,您要附加字符串。
当前为:
function addSharks()
{
var sharkstoadd = 100;
shark[0] += 100;
shark[3] = shark[0] * (shark[1] - shark[2])
document.getElementById("sharkAmount").innerHTML = shark[0];
document.getElementById("sharkPrice").innerHTML = shark[1];
document.getElementById("sharkCost").innerHTML = shark[2];
document.getElementById("sharkProfit").innerHTML = shark[3];
localStorage.setItem('amountShark', shark[0]);
}
更改为:
function addSharks()
{
var sharkstoadd = 100;
shark[0] = parseInt(shark[0]) + 100;
shark[3] = parseInt(shark[0]) * parseInt((shark[1]) - parseInt(shark[2]))
document.getElementById("sharkAmount").innerHTML = shark[0];
document.getElementById("sharkPrice").innerHTML = shark[1];
document.getElementById("sharkCost").innerHTML = shark[2];
document.getElementById("sharkProfit").innerHTML = shark[3];
localStorage.setItem('amountShark', shark[0]);
}