Javascript 使用HTML5本地存储

Javascript 使用HTML5本地存储,javascript,html,Javascript,Html,我正在开发一个小网站,很难在整个网页中保持成本价值的持久性 我曾尝试使用Html5存储,但无法使其正常工作 以下是我的Javascript: function modifyPrice(cost) { // body... var total = document.getElementById('totalCost'); var accumulte = total.value; var temp = cost + Number.isInteger(accumulte

我正在开发一个小网站,很难在整个网页中保持成本价值的持久性

我曾尝试使用Html5存储,但无法使其正常工作

以下是我的Javascript:

function modifyPrice(cost) {
    // body...
    var total = document.getElementById('totalCost');
    var accumulte = total.value;
    var temp = cost + Number.isInteger(accumulte) + 15;
    total.value = temp;

    localStorage.setItem("priceTag",temp);

    document.getElementById('pricetag').innerHTML = localStorage.getItem("priceTag");

}
下面是我的html示例:

<span>
    <span name="price" id="pricetag"></span> $
</span>

$
这可能是我执行本地存储的方式,还是有更好的方式?

Number.isInteger(accumulte)
返回布尔结果。因此,您必须将代码更改为

var calculate=document.getElementById('calculate');
calculate.addEventListener(“单击”,函数(){
var total=document.getElementById('totalCost'),
Accumute=+total.value,//将int转换为字符串。
成本=10,
温度=成本+(数字isInteger(accumulte)?parseInt(accumulte,10):0)+15;
警报(“当Accumute为“+total.Value+”=“+temp时的值”);
},假)

数字。isInteger(Accumule)
返回布尔结果。因此,您必须将代码更改为

var calculate=document.getElementById('calculate');
calculate.addEventListener(“单击”,函数(){
var total=document.getElementById('totalCost'),
Accumute=+total.value,//将int转换为字符串。
成本=10,
温度=成本+(数字isInteger(accumulte)?parseInt(accumulte,10):0)+15;
警报(“当Accumute为“+total.Value+”=“+temp时的值”);
},假)



控制台出现了什么错误
#totalCost
未在HTML中定义。我在文档的最后一行收到一个返回null错误。getElementById getElementById为null?您使用localStorage的方式很好,我认为您的错误在别处。
getElementById
对于
#pricetag
不应为null,除非在加载DOM之前执行JavaScript,否则控制台会出现什么错误
#totalCost
未在HTML中定义。我在文档的最后一行收到一个返回null错误。getElementById getElementById为null?您使用localStorage的方式很好,我认为您的错误在别处。
getElementById
对于
#pricetag
不应为null,除非在加载DOM之前执行JavaScript。将布尔值添加到整数会根据布尔值添加
1
0
。我相信
temp
会被设置为某个整数值。实际错误可能是其他错误。您忘记了这里的括号。这将评估为
temp=(成本+数量.isInteger(accumulte))?val1:val2
@JohnBupit:yes。我的意思是,真实的虚假铸造将产生错误的结果anyway@naveen,不,这不是强制性的,只是不一样:每次
cost
是真实的,您的代码都会落在第一个表达式上<代码>1+错误?“val1':'val2'
返回'val1',而我猜您想要的是
“1val2”
。在这种情况下,它需要是
1+(false?'val1':'val2')
将布尔值添加到整数中会根据布尔值添加
1
0
。我相信
temp
会被设置为某个整数值。实际错误可能是其他错误。您忘记了这里的括号。这将评估为
temp=(成本+数量.isInteger(accumulte))?val1:val2
@JohnBupit:yes。我的意思是,真实的虚假铸造将产生错误的结果anyway@naveen,不,这不是强制性的,只是不一样:每次
cost
是真实的,您的代码都会落在第一个表达式上<代码>1+错误?“val1':'val2'返回'val1',而我猜您想要的是
“1val2”
。在这种情况下,它需要是
1+(false?'val1':'val2')