использование .removeItem в localStorage - PullRequest
0 голосов
/ 02 марта 2012

Используя 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

1 Ответ

2 голосов
/ 02 марта 2012

Вы используете переменные для хранения своих элементов и строки, чтобы очистить их.

Bareword (т.е. переменная) здесь:

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

и строка здесь:

localStorage.setItem('nicwincount', 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...