2016-03-21 7 views
-1

Ich suche nach einer Möglichkeit, durch die Liste zu iterieren, so dass ich alle Elemente in meiner Liste anzeigen kann. Momentan wird nur eine gespeicherte Kombination angezeigt. Wenn ich auf die ('.se-saved').click(function() klicke, bekomme ich immer die gleiche Kombination, es geht nicht zum nächsten Punkt in der Liste. Ich bin neu in JavaScript. Das habe ich bis jetzt erreicht.Iterate durch eine Json-Liste im lokalen Speicher

$(document).on('click', '.save-btn', function(){   
    var saveDrink = data[num].name; 
    var saveFood = input; 

    var SaveAll = []; 
    SaveAll.push({saveDrink,saveFood}); 
    var JSONFavorit = JSON.stringify(SaveAll); 
    localStorage.setItem("Favorit", JSONFavorit); 
    console.log(SaveAll); 
    alert("Your fav drink and food combo is now saved"); 
});   


//runs when btn "Your saved comb" clicks on, the combo.html page 
$('.se-saved').click(function(){ 
    //get from localstorage 
    var favoriter = JSON.parse(localStorage.getItem("Favorit")); 
    console.log(favoriter); 
    $("#fave").append("<p> Drink: " + favoriter[0].saveDrink + ". Food: " + favoriter[0].saveFood + ".</p>"); 
}); 
+0

Das ist ein Syntaxfehler! ': P' –

+0

' Objekt' sollte 'Schlüssel' haben, richtig? So etwas wie [this] (https://jsfiddle.net/rayon_1990/rnb2dmcw/) – Rayon

+0

SaveAll.push ({'drink': saveDrink, 'food': saveFood}); So was? – derby1

Antwort

0

Ja! Dieser Code enthält einige Fehler. Zuerst einmal Objekt sollte Schlüssel und Wertpaar sein. Hier haben Sie es als Array erwähnt. Daher wird es nicht gespeichert und endete mit einem Fehler. Sie müssen also sicherstellen, dass es im folgenden Format sollte.

SaveAll.push({'drink': saveDrink, 'Food': saveFood}); 

Hinweis: Der Schlüsselname sollte in Anführungszeichen gesetzt werden.

Zweite: Sie hatten gesagt, dass Sie jedes Mal die gleiche Kombination haben. Ja! weil Sie das Array innerhalb der Click-Funktion deklariert haben. so wird bei jedem Klick der vorherige Wert im Array gelöscht und es wird jedes Mal ein neues Array erstellt. Also bring es wie folgt raus.

var SaveAll = []; 
$(document).on('click', '.save-btn', function(){ 
// some codes goes here. 
}); 

Sobald Sie diese Fehler beseitigen. Es ist einfach zu iterieren und alle Werte, die Sie im lokalen Speicher speichern, zu erhalten. look at this bin.