3 回答

TA贡献1816条经验 获得超4个赞
localStorage.setItem("qty", 5);
const qty = localStorage.getItem("qty");
const num = Number(qty); // or const num = parseInt(qty):
console.log(num);

TA贡献1818条经验 获得超7个赞
将行替换为localStorage.setItem('qty', qty1);
:
localStorage.setItem('qty', JSON.stringify(qty1));
并与以下行localStorage.getItem('qty');
:
JSON.parse(localStorage.getItem('qty'));
这应该可以解决问题。
原因: localStorage
将所有内容存储为string
类型。因此,任何整数或数字也将转换为string
。通过使用JSON
函数,我们保留了type
存储在中的原始值localStorage
。

TA贡献1863条经验 获得超2个赞
我没有看到从代码中的函数返回函数的目的,也没有看到它与问题文本之间的关系。
我看不到您对localStorage进行get和set硬编码使用的目的。除非变量名将是变量,否则会使读取变得复杂。
localStorage.setItem('qty',123); === localStorage.qty=123;
我相信要问的一个简化版本是...
<input type="number" id="value">
<input type="button" id="set" value="set">
<input type="button" id="restore" value="restore">
<script>
document.getElementById('set').addEventListener("click", function() {
localStorage.qty = document.getElementById('value').value;
});
document.getElementById('restore').addEventListener("click", function() {
document.getElementById('value').value= localStorage.qty;
});
document.getElementById('value').addEventListener("change", function() {
let max = 10;
if (this.value < 0) {
new_qty = 0;
}
if (this.value > max) {
this.value = max;
}
});
</script>
但是,您可能能够在HTML标记上完成数据验证,而无需脚本进行验证。
添加回答
举报