在localStorage中使用.removeItem

时间:2012-03-02 00:19:30

标签: javascript jquery local-storage

使用jQuery和localStorage,我想跟踪玩家赢得游戏的次数。每次提交表单时,wincount或者丢失计数都会增加一个,取决于谁赢了。计数器工作正常,但由于某种原因,清除计数的功能不起作用。我一直在使用与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

1 个答案:

答案 0 :(得分:2)

您正在使用变量来存储项目和字符串以清除它们。

Bareword(即变量):

localStorage.setItem(nicwincount, JSON.stringify(nicwincount));

和字符串在这里:

localStorage.setItem('nicwincount', 0);