2017-11-07 7 views
-1

Mein Code funktioniert nicht, wenn ich versuche, einen Wert zu speichern und zu laden. Ich habe das mehrfach nachgeschlagen, ohne definitive Antworten. Jede Hilfe wäre willkommen!Ich kann nicht scheinen, lokalen Speicher zu arbeiten

var1 = 1 
 

 
function save() { 
 
    localStorage.setItem("var1", string(var1)); 
 
} 
 
function load() { 
 
    var1 = localStorage.getItem("var1"); 
 
} 
 
function up() { 
 
    var1 += 1 
 
    document.getElementById("test").innerHTML = var1 
 
}
<p id="test">1</p><br> 
 
<button onclick="up()">up1</button> 
 
<button onclick="save()">save</button> 
 
<button onclick="load()">load</button>

+0

i Github verwenden hauptsächlich für diese Art von Sachen –

+0

Haben Sie Nummer oder Zeichenfolge speichern? – brk

+0

Ich möchte die Nummer –

Antwort

2

Localstorage Speicherdaten in Schlüsselwertformat und den Wert als Zeichenfolge gespeichert.

Um int in einen String zu konvertieren, können Sie toString() verwenden. Beim Abrufen des Elements von localStorage erhalten Sie außerdem eine Zeichenfolge, die Sie in int konvertieren müssen.

Versuchen Sie den folgenden Code, es wird nicht auf StackOverflow arbeiten, wie es Sandkasten ist.

var1 = 1 
 

 
function save() { 
 
    localStorage.setItem("var1", var1.toString()); 
 
} 
 

 
function load() { 
 
    var1 = +localStorage.getItem("var1"); 
 
} 
 

 
function up() { 
 
    var1 += 1 
 
    document.getElementById("test").innerHTML = var1 
 
}
<p id="test">1</p><br> 
 
<button onclick="up()">up1</button> 
 
<button onclick="save()">save</button> 
 
<button onclick="load()">load</button>

0

Es gibt keine Notwendigkeit, eine Zeichenfolge zu konvertieren, wenn Sie es sind zu speichern, aber Sie sollten es zurück in eine ganze Zahl konvertieren, wenn Sie es wieder aus dem Lager zu bekommen.

function save() { 
    localStorage.setItem("var1", var1); 
} 

function load() { 
    var1 = parseInt(localStorage.getItem("var1")); 
} 
0

In lokalen Speicher der Schlüssel können Strings oder ganze Zahlen, aber die Werte sind immer strings.So innerhalb load Funktion versuchen, konvertieren die abgerufene Zeichenfolge Zahl sein. Else, anstatt es hinzuzufügen, wird eine Verkettung string.For Beispiel 8+1 wird 81 anstelle von 9.

es auch kein body Tag in Ihrem DOM

<html lang="en"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Title</title> 
 
</head> 
 

 
<body> 
 
    <p id="test">1</p><br> 
 
    <button onclick="up()">up1</button> 
 
    <button onclick="save()">save</button> 
 
    <button onclick="load()">load</button> 
 
    <script> 
 
    var var1 = 1; 
 

 
    function save() { 
 
     console.log(var1) 
 
     localStorage.setItem("var1", var1); 
 
    } 
 

 
    function load() { 
 
     //using unary operator to convert string to number 
 
     var1 = +localStorage.getItem("var1"); 
 
     console.log(typeof var1) 
 
    } 
 

 
    function up() { 
 
     var1 += 1; 
 
     document.getElementById("test").innerHTML = var1; 
 
    } 
 
    </script> 
 

 
</body> 
 

 
</html>

Verwandte Themen