2016-03-29 4 views
0

Ich arbeite an einer grundlegenden Browsergame-Engine, die Variablen mit lokalem Speicher speichert.Wert über lokalen Speicher prüfen

Auf einer HTML-Seite, die ich habe:

localStorage.setItem("money", 49); 

Dann auf einer anderen Seite, ich möchte den Wert in der Lage sein zu 1 hinzufügen zu. Um dies zu tun Ich habe den folgenden Code auf einer HTML-Seite:

onClick="varPlus1('money')" 

und dies in der JavaScript-Datei:

function varPlus1(name) 

{ 

    var val=localStorage.getItem(name); 

    val += 1; 

    localStorage.setItem(name, val); 

} 

Ich habe gehofft, dies den Wert der Variablen erhöhen würde ‚Geld‘ auf 50 aber es scheint es nicht zu ändern. Was mache ich falsch?

+0

Convert val in int, dann tun '+' dann ruft setItem mit neuem Wert. Code: localStorage.setItem ('money', parseInt (localStorage.getItem ('money')) + 1) –

+0

Oder nur 'var val = + localStorage.getItem (Name);' – Rayon

+0

@RayonDabre Weg sind besser :) –

Antwort

2

Localstorage speichert Werte als string und += 1 werden Strings verketten als add Betrieb zu tun.

+ (einstellige plus) wird gegossen string-Number

Versuchen Sie folgendes:

localStorage.setItem("money", 49); 
 

 
function varPlus1(name) { 
 
    var val = +localStorage.getItem(name); 
 
    val += 1; 
 
    localStorage.setItem(name, val); 
 
} 
 
varPlus1('money')

0

verwenden Sie den folgenden Code getestet und gearbeitet: - HTML

<button id="btnSave">sadsadsad</button> 

JQuery

$(document).ready(function() { 
localStorage.setItem("money", 49); 

    $("#btnSave").click(
      function() { 
       varPlus1('money'); 
      }    
     ); 
}); 
function varPlus1(name) 
{ 
    var val=localStorage.getItem(name); 

    val =parseInt(val)+ 1; 

    localStorage.setItem(name, val); 
alert (localStorage.getItem(name)); 
}