Javascript localStorage在getItem、setItem之后在Chrome上重置

Javascript localStorage在getItem、setItem之后在Chrome上重置,javascript,jquery,local-storage,Javascript,Jquery,Local Storage,我正在尝试使用jQuery将数据保存在localStorage中。每次刷新Chrome浏览器时,我试图保存的数据都会重置。首先,我通过getItem从字典中检索数据,然后使用setItem进行设置。听起来很简单,但我无法保存它。感谢您的帮助。谢谢 以下是我的js: moneylove = {"snacks":{"c":1,"m":1,"e":2},"food":{"c":2,"m":0,"e":1},"soap":{"c":2,"m":0,"e":0},"toys":{"c":2,"m":1,"

我正在尝试使用jQuery将数据保存在localStorage中。每次刷新Chrome浏览器时,我试图保存的数据都会重置。首先,我通过
getItem
从字典中检索数据,然后使用
setItem
进行设置。听起来很简单,但我无法保存它。感谢您的帮助。谢谢

以下是我的js:

moneylove = {"snacks":{"c":1,"m":1,"e":2},"food":{"c":2,"m":0,"e":1},"soap":{"c":2,"m":0,"e":0},"toys":{"c":2,"m":1,"e":2}} //dog state
for (state in moneylove["snacks"]){
    stateadd = JSON.parse(localStorage.getItem(state))
    stateadd += moneylove["snacks"][state]
    localStorage.setItem(state,JSON.stringify(stateadd))
}
console.log(localStorage)

替换
s是因为每个子对象都具有相同的属性,因此它无论如何都会替换。换成这样

var moneylove = {"snacks":{"c":1,"m":1,"e":2},"food":{"c":2,"m":0,"e":1},"soap":{"c":2,"m":0,"e":0},"toys":{"c":2,"m":1,"e":2}} //dog state
for (state in moneylove["snacks"]){
    stateadd = JSON.parse(localStorage.getItem(state))
    stateadd += moneylove["snacks"][state]
    localStorage.setItem("snacks" + state,JSON.stringify(stateadd)) // Make key be unique.
}
console.log(localStorage)
编辑

完整的计算和存储方法如下例所示。这可以计算
moneylove
中每个对象的状态

var moneylove = {"snacks":{"c":1,"m":1,"e":2},"food":{"c":2,"m":0,"e":1},"soap":{"c":2,"m":0,"e":0},"toys":{"c":2,"m":1,"e":2}} //dog state

for(var itemKey in moneylove) {
  var item = moneylove[itemKey];
  for (var stateKey in item){
    var storageKey = itemKey + "-" + stateKey;
    var stateadd = JSON.parse(localStorage.getItem(storageKey) || '0')
    stateadd += item[stateKey];
    localStorage.setItem(storageKey, JSON.stringify(stateadd)) // Make key be unique.
  }
}
console.log(localStorage)

替换
s是因为每个子对象都具有相同的属性,因此它无论如何都会替换。换成这样

var moneylove = {"snacks":{"c":1,"m":1,"e":2},"food":{"c":2,"m":0,"e":1},"soap":{"c":2,"m":0,"e":0},"toys":{"c":2,"m":1,"e":2}} //dog state
for (state in moneylove["snacks"]){
    stateadd = JSON.parse(localStorage.getItem(state))
    stateadd += moneylove["snacks"][state]
    localStorage.setItem("snacks" + state,JSON.stringify(stateadd)) // Make key be unique.
}
console.log(localStorage)
编辑

完整的计算和存储方法如下例所示。这可以计算
moneylove
中每个对象的状态

var moneylove = {"snacks":{"c":1,"m":1,"e":2},"food":{"c":2,"m":0,"e":1},"soap":{"c":2,"m":0,"e":0},"toys":{"c":2,"m":1,"e":2}} //dog state

for(var itemKey in moneylove) {
  var item = moneylove[itemKey];
  for (var stateKey in item){
    var storageKey = itemKey + "-" + stateKey;
    var stateadd = JSON.parse(localStorage.getItem(storageKey) || '0')
    stateadd += item[stateKey];
    localStorage.setItem(storageKey, JSON.stringify(stateadd)) // Make key be unique.
  }
}
console.log(localStorage)
试试这个

var DB = function(){
    this.Read = function(index){
        return JSON.parse(localStorage[index]).data;
    };

    this.Write = function(index, data){
        localStorage[index] = JSON.stringify({data : data});
    };

    this.Test = function(){ // test support localStorage!
        return typeof localStorage == typeof {};
    };

    this.Clear = function(index){
      if(typeof index === "undefined"){
        localStorage = {};
      } else {
        localStorage[index] = JSON.stringify({data : []});
      }
    };
}

// example:
var x = new DB(); // new data base
if(!x.Test()) alert('Error!'); // not support!
x.Write('food', ['food','bar','google']); // write data
console.log(x.Read('food')); // get data!

x.Clear('food'); // clear data!
console.log(x.Read('food')); // get data!
试试这个

var DB = function(){
    this.Read = function(index){
        return JSON.parse(localStorage[index]).data;
    };

    this.Write = function(index, data){
        localStorage[index] = JSON.stringify({data : data});
    };

    this.Test = function(){ // test support localStorage!
        return typeof localStorage == typeof {};
    };

    this.Clear = function(index){
      if(typeof index === "undefined"){
        localStorage = {};
      } else {
        localStorage[index] = JSON.stringify({data : []});
      }
    };
}

// example:
var x = new DB(); // new data base
if(!x.Test()) alert('Error!'); // not support!
x.Write('food', ['food','bar','google']); // write data
console.log(x.Read('food')); // get data!

x.Clear('food'); // clear data!
console.log(x.Read('food')); // get data!

您是否将
localStorage
设置在问题的
javascript
之前?浏览器开发人员工具是否在setItem之后显示本地存储数据?您是否将
localStorage
设置在问题的
javascript
之前?浏览器开发人员工具是否在setItem之后显示本地存储数据?