2016-04-11 9 views
2

オブジェクトをローカルストレージに保存していますが、ページを再度ロードするときにすべてのアイテムをリストしたいのですが、オブジェクト要素。何か案は?ここに私のコードです:ローカルストレージ内のオブジェクトの特定の要素を取得します

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); 
    } 
}); 

これらのconsole.logsは "未定義"を返し、私は特定の情報を取得したいと思います。

ありがとうございました。

答えて

3

ローカル記憶域に値を格納するには、キー114270311_estudiantesを使用しています。これは配列です。

だからあなたはあなたがagregaArray() & agregaLocalStorage()を呼び出している方法を見つけることができませんあなたのコードからアレイの上

$("#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

有用であろう

希望おかげで、あなたは完全に正しいです! –

0

を繰り返す、その後、配列を取得するためにそのキーの結果を解析する必要があります。関数。 内にlocalStorage.setItem..を実行し、2番目の機能を回避することができます。

また、localStorage.lengthを実行すると、興味のないアイテムがすべて返されます。その代わりに、このキーで保存されたアイテムのみが必要です114270311_estudiantes

デモの場合は、jsonの値をハードコーディングしています。このスニペットは

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

ありがとう、本当に便利でした!問題が解決しました –