2017-04-25 50 views
-2

我已经问过这个问题,并得到了一些很好的建议,但我想我只是让自己迷路了。过去两天我一直在做JQuery,所以有点新鲜感。我正在做一个简单的游戏,并希望在页面加载之间计算得分,但无论我做什么似乎都没有工作。完全丧失在localStorage

var score; 
var points = parseInt(localStorage.getItem(score),10)||0; 
if (score == null || score == "null"){ 
    score = 0; 
}else{ 
    score = parseInt(localStorage.getItem(score),10)||0; 
} 

console.log(score); 
//alert(score); 
var ans; 
var img; 
img = document.getElementsByClassName("image")[0].id; 
$(".answer").click(function() { 
ans = $(this).attr('id'); 
if (ans === img){ 
    score++; 
    localStorage.setItem("score", score); 
    //alert('right answer'); 
    location.reload(); 
}else{ 
    //alert('wrong answer'); 
    //location.reload(); 
} 
//localStorage.setItem("points", score); 
}); 

Fiddle for whole program

再次我已经吃过这方面的一些建议,但我不知道我得到它。任何帮助都会很棒。

+1

*“似乎并不奏效” *什么是预期的结果,什么是你所得到的结果呢?请解释我们如何复制这个问题。虽然*“完全丢失localStorage”*告诉我们你有一个'localStorage'的问题,它并没有告诉我们你的问题到底是什么。 –

+0

不确定这是否是您的问题,但是您在两个不同的范围内声明两次“分数”。除了@RJM注释'var points = parseInt(localStorage.getItem(score),10 ||')之外,还要在'if'语句之上声明一次,然后在'if/else' – RJM

+0

的两个分支中设置它的值。 0);'最后有一个圆括号不应该在那里,'var points = parseInt(localStorage.getItem(score),10)|| 0;' – darham

回答

0

我看着你的jsFiddle,你试图得到一个你从未设置过的号码! 使用localstorage.setItem(更多信息here),然后再使用localstorage.getItem

还引用了https://stackoverflow.com/a/2010948/3049893

+0

它应该是'localStorage.setItem'和'localStorage.getItem' – bntzio