我正在建立一个答题器游戏,并且本地存储返回的是空无一物,而不是保存的数据

时间:2019-02-07 16:28:45

标签: javascript

因此,我在CodePen上构建了一个Clicker游戏,在编写保存/加载功能时遇到了问题。似乎我的保存功能可能无法正常工作,但我不确定为什么。
以下是这些功能:

function savegame(){
  localStorage.clicks = Number(document.getElementById('clicks').innerHTML); 
  localStorage.cps = document.getElementById('cps').innerHTML; 
                localStorage.clickPower = 
Number(document.getElementById('clickpower').innerHTML); 
                localStorage.onecpow = Number(document.getElementById('1clickpowe').innerHTML); 
                localStorage.onecps = Number(document.getElementById('1cps').innerHTML); 
                localStorage.fivecps = Number(document.getElementById('5cps').innerHTML); 
                localStorage.fivecpow = Number(document.getElementById('5clickpower').innerHTML); 
                localStorage.tencps = document.getElementById('10cps').innerHTML;}
function loadgame(){document.getElementById('1clickpower').innerHTML = localStorage.getItem("onecpow");
       document.getElementById('clicks').innerHTML = localStorage.getItem("clicks");
                document.getElementById('cps').innerHTML = localStorage.getItem('cps'); 
                document.getElementById('clickpower').innerHTML = localStorage.getItem('clickpower');
                document.getElementById('5clickpower').innerHTML = localStorage.getItem('fivecpow'); 
                document.getElementById('5cps').innerHTML = localStorage.getItem('fivecps'); 
                document.getElementById('1cps').innerHTML = localStorage.getItem('onecps'); 
                document.getElementById('10cps').innerHTML = localStorage.getItem('tencps');}


我忘了澄清我期望代码做什么。这应该做的是保存播放器的进度和升级,而不是在加载保存的数据时不加载播放器数据,并返回许多应该已加载保存数据的空格。

3 个答案:

答案 0 :(得分:2)

代替尝试localStorage.onecpow = "someValue"

storage.setItem(onecpow, "someValue");

您可以在此处查看Storage文档以获取更多信息

答案 1 :(得分:2)

您使用'localStorage'错误。看看这个:

// writing to localStorage
localStorage.setItem('myId', value);

// reading from localStorage
var whatever = localStorage.getItem('myId');

// remove an item from localStorage
localStorage.removeItem('myId');

编辑:

问题是您要混淆两种不同的方法。您必须决定使用哪个。是对象驱动还是键驱动。

我上面的示例是密钥驱动的方法。您还应该能够使用这样的对象驱动方法:

// writing to localStorage
localStorage.myObject = value;

// reading from localStorage
var whatever = localStorage.myObject;

选择样式,但不要混淆。 ; o)

答案 2 :(得分:0)

我找到了解决方案,尽管它的工作方式有点奇怪。

我在localStorage属性中添加了大写字母,并分别使用了localStorage.setItemlocalStorage.getItem。不知道为什么会起作用,但是会起作用。

相关问题