【发布时间】:2019-02-19 18:32:57
【问题描述】:
我正在构建一个小型 JavaScript 游戏,我想实现一个得分框。
我想做的是;每次用户获胜,给localStorage加5分,并显示在评分框中。
如果用户再次获胜,则将 localStorage 中的分数增加 +5 并显示更新后的分数。
我已经创建了 scoreBox。 我还将本地存储的分数设置为 5,每次用户获胜时,scoreBox 中都会显示 5
// 这里是评分框
let scoreBox = document.createElement('button');
scoreBox.className = "button-primary"
scoreBox.disabled = "true"
scoreBox.style.fontSize = "20px";
game.appendChild(scoreBox);
//这是我设置分数的方式
if(typeof(Storage) !== "undefined") {
localStorage.setItem('score', 5)
let score = localStorage.getItem('score');
scoreBox.innerText = score;
} else {
console.error('Local Storage not supported!')
}
现在,每次用户获胜时都会显示分数,但是如果我刷新,scoreBox 中的 5 的值不会保留,而是保留在 localStorage 中。
我现在的问题是如何存储整个 scoreBox,或者更确切地说如何使 scoreBox 及其 textContent 保留在 localStorage 中。
我是 localStorage 的新手,我不知道我是否做了正确的事情,我进行了研究,但找不到最能解决我的问题的可能答案。是否可以在 localStorage 中存储 HTML 元素?
游戏是一个简单的猜数字游戏,在这里演示:
https://bolajiayodeji.github.io/brain-gym/
完整的源代码在这里:https://github.com/BolajiAyodeji/brain-gym
PS: scoreBox 功能是我正在开发的,我还没有添加到演示中。
提前谢谢你!
【问题讨论】:
-
把谷仓带到牛而不是牛到谷仓
-
页面刷新时有值为什么不设置分数?
-
我不明白吗?
标签: javascript dom local-storage