javascript - 用 Javascript 显示 2 个随机数
问题描述
我在这里有这段代码:
<script>
const stored = localStorage[location.href]
const number = stored || Math.floor(Math.random() * 6) + 2
document.getElementById("n1").innerHTML = number
if ( !stored ) localStorage[location.href] = number
</script>
<div>
The first number is <span id="n1"></span>.
</div>
这会显示 2~6 之间的随机数并将其保存到用户的缓存中,因此如果他重新加载页面,相同的数字将再次出现。但我现在要做的是显示第二个数字,我正在尝试这个:
<script>
const stored2 = localStorage[location.href]
const number2 = stored2 || Math.floor(Math.random() * 8) + 3
document.getElementById("n2").innerHTML = number2
if ( !stored2 ) localStorage[location.href] = number2
</script>
<div>
The second number is <span id="n2"></span>.
</div>
但<span id="n2"></span>
is 显示的数字始终与 中相同<span id="n1"></span>
。我想这与用户缓存中的本地存储有关。如何让它显示 2 个不同的数字,但继续将这些数字存储在用户的缓存中,这样如果他重新加载页面,将显示相同的 2 个数字?
提前致谢
解决方案
您已将两个数字存储在localStorage
同一个键 ( location.href
) 下,因此第二个将覆盖第一个。
您需要使用不同的键或将数字存储在 JSON 字典中并将其存储。
推荐阅读
- javascript - JQuery mouseleave 函数快速返回而不是转换?
- html - 有没有其他方法来定位绝对元素?
- python - ValueError:字符串格式说明符中不允许“=”对齐
- javascript - 如何在通过 JavaScript 克隆 html 元素后清除输入字段并选择字段?
- excel - VBA 代码覆盖保护设置 - 任何想法
- react-native - 命令失败:在 React-Native 中安装导航、firebase、图标等依赖项时出现 gradlew.bat installDebug 错误
- android - 将 Android Studio 配置为在文件打开时将一种格式应用于代码,在文件保存时将另一种格式应用于代码
- python - 如何平衡(过采样)PyTorch 中的不平衡数据(使用 WeightedRandomSampler)?
- php - 为什么将隐藏的输入标签放在 HTML5 DOCTYPE 声明之上
- gradle - 使用 Gradle 时如何阻止 IntelliJ IDEA 忘记忽略的目录?