使用 jQuery 和 localStorage,我想跟踪玩家赢得游戏的次数。每次提交表格时,获胜计数或失败计数都会增加一,具体取决于获胜者。计数器工作正常,但由于某种原因,清除计数的功能不起作用。我一直在使用 removeItem()
和其他变量使用相同的函数,并且运行良好。
var nicwincount;
var niclosscount;
$('#dostuff').click(function(e) {
e.preventDefault();
if (playerName === 'nic' && tempresult === win) {
nicwincount = JSON.parse(localStorage.getItem (nicwincount));
nicwincount += 1;
localStorage.setItem(nicwincount, JSON.stringify(nicwincount));
console.log(localStorage.getItem(nicwincount));
console.log(nicwincount);
}
else if (playerName === 'nic' && tempresult === loss) {
losscount = JSON.parse(localStorage.getItem(niclosscount));
losscount += 1;
localStorage.setItem (niclosscount, losscount);
console.log(localStorage.getItem(niclosscount));
}
}
我尝试过使用 .setItem ()
将计数设置为 0。我也尝试过使用 .removeItem
。无法让他们中的任何一个为我工作,也不明白为什么。
$('#clear').click(function(e){
e.preventDefault();
localStorage.setItem('nicwincount', 0);
localStorage.setItem('niclosscount', 0);
}
谢谢!
更新:
此代码使用 localStorage 工作
var nicScoreList = JSON.parse(localStorage.getItem('nicscorelist') || '[]');
var niccount = 0;
var nicTotalScore = nicScoreList.reduce(function(total, score) {
if (score === " " || total === " ") {
niccount++;
}
return +total + +score;
});
我从 localStorage 获取的项目在单独的页面上定义为:
scorelist = JSON.parse(localStorage.getItem(playerName + 'scorelist') || '[]');
scorelist.push(" ");
localStorage.setItem(playerName + 'scorelist', JSON.stringify(scorelist));
$('div.scorecolumn', column).html("Score: <br>" + scorelist.join('<br>'));
我知道我似乎跳过了一堆代码,所以如果这没有意义,请告诉我。
此代码有效,但原始示例仍然不适用于 nicwincount 和 niclosscount
最佳答案
您正在使用变量来存储项目并使用字符串来清除它们。
此处为裸字(即变量):
localStorage.setItem(nicwincount, JSON.stringify(nicwincount));
这里是字符串:
localStorage.setItem('nicwincount', 0);
关于javascript - 在 localStorage 中使用 .removeItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526293/