【发布时间】:2012-03-02 09:16:48
【问题描述】:
使用 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
【问题讨论】:
标签: javascript jquery local-storage