2016-04-11 5 views
2

Ich speichere ein Objekt im lokalen Speicher und die Ich möchte alle Elemente auflisten, wenn ich die Seite erneut lade, aber ich weiß nicht, wie man die Informationen von der Objektelemente. Irgendwelche Ideen? Hier ist mein Code:erhalten spezifisches Element des Objekts im lokalen Speicher

var estudiantes = []; 

function agregaArray(i) { 
    estudiantes.push({ 
     "carnet": $("#carnet_" + i).text(), 
     "apellidos": $("#apellidos_" + i).text(), 
     "nombre": $("#nombre_" + i).text(), 
     "e1": $("#examen1_" + i).val(), 
     "e2": $("#examen2_" + i).val(), 
     "e3": $("#examen3_" + i).val(), 
     "prom": $("#promedio_" + i).text() 
    }); 
} 

function agregaLocalStorage() { 
    localStorage.setItem("114270311_estudiantes", JSON.stringify(estudiantes)); 
} 

$("#list").click(function() { 
    for (var i = 0; i < localStorage.length; i++) { 
     var obj = JSON.parse(localStorage.getItem(localStorage.key(i))); 
     console.log(obj.carnet); 
     console.log(obj.apellidos); 
     console.log(obj.nombre); 
    } 
}); 

Diese console.logs gibt eine „undefiniert“ und ich mag die spezifischen Informationen erhalten.

Danke für die Hilfe.

Antwort

3

Sie verwenden den Schlüssel 114270311_estudiantes, um den Wert im lokalen Speicher zu speichern, der ein Array ist.

Sie müssen also das Ergebnis dieses Schlüssels analysieren, um die Anordnung zu erhalten, durchläuft dann das Array

$("#list").click(function() { 
    var arr = JSON.parse(localStorage.getItem('114270311_estudiantes')); 
    arr.forEach(function(obj) { 
    console.log(obj.carnet); 
    console.log(obj.apellidos); 
    console.log(obj.nombre); 
    }); 
}); 
+0

Dank nützlich sein wird, sind Sie völlig Recht! –

0

aus dem Code nicht in der Lage, herauszufinden, wie Sie anrufen agregaArray() & agregaLocalStorage(); Funktion. Sie können localStorage.setItem.. innerhalb agregaArray Funktion tun und eine zweite Funktion vermeiden.

Auch tun localStorage.length wird alle gespeicherten Elemente, die möglicherweise nicht Ihr Interesse sein. Stattdessen brauchen Sie nur Artikel gespeichert mit diesem Schlüssel 114270311_estudiantes.

Für Demo bin ich hart codieren die Werte für die JSON.

Hope this Snippet

var estudiantes = []; 

function agregaArray() { 
    estudiantes.push({ 
     "carnet": "1", 
     "apellidos":"2", 
     "nombre":"3", 
     "e1":"4", 
     "e2":"5", 
     "e3": "6", 
     "prom":"6" 
    }); 
} 
function agregaLocalStorage() { 
    localStorage.setItem("114270311_estudiantes",JSON.stringify(estudiantes)); 
} 
agregaArray(); 
agregaLocalStorage(); 

$("#list").click(function() { 
    var m = JSON.parse(localStorage.getItem("114270311_estudiantes")); 
    m.forEach(function(key){ 
    console.log(key.carnet); 
    console.log(key.nombre); 
    console.log(key.apellidos); 
    }) 
}); 

Working jsFiddle

+0

Danke, es war wirklich nützlich! Problem gelöst –