2017-05-16 2 views
0

Ich mache ein Programm und ich möchte JavaScript-Objekte auf lokalen Speicher schieben, ich möchte keine andere Methode als lokalen Speicher verwenden. Ich bekomme ein Element, aber ich bekomme keine zusätzlichen Elemente zum lokalen Speicherarray hinzugefügt. hier ist mein Javascript-Code:Warum werden meine Objekte nicht in den lokalen Speicher verschoben?

FÜR NEUE CODE AKTUALISIERT

var form = document.getElementsByTagName("form")[0]; 
form.setAttribute("method", "POST"); 

var data = JSON.parse(localStorage.getItem('data') || '[]') 

if (data == null) { 
    data = new Array(); 
} 

var add = document.getElementsByTagName("button")[0]; 
add.addEventListener('onclick',validate); 
console.log(add); 

function validate() { 
    var age = document.getElementsByName("age")[0].value; 
    var relation = document.getElementsByName("rel")[0].value; 

    var list = document.getElementsByTagName("ol")[0]; 

    var myObj = {"age": age, "relation": relation}; 

    data.push(myObj); 

    localStorage.setItem("data", JSON.stringify(data)) 

    alert(data); 
} 

console.log(data); 

Antwort

1

Localstorage nur Strings speichern können. Verwenden Sie localStorage.setItem("data", JSON.stringify(data)) zu speichern und JSON.parse(localStorage.getItem('data') || '[]')

+0

zu lesen, wenn mit var data = JSON.parse (localStorage.getItem ('data') || '[]') ich: Uncaught Syntaxerror: unerwartete Zeichen o in JSON an Position 1 bei JSON.parse () bei index.js: 4 als Fehler – tygrim

+0

Fügen Sie einen Versuch/Catch um die JSON-Parse-Linie. – Ivo

+0

reparierte den Fehler, musste mein altes json-Objekt löschen, aber jetzt, wann auch immer ich die Seite lade, bekomme ich noch ein leeres Array, egal wie viele Elemente ich hinzufüge – tygrim

Verwandte Themen