user2109326
user2109326

Reputation: 123

Show contents of localStorage into div

I have this basic function :

pid = 1;
$(function() {
    if (localStorage["key"+pid] != null) {
        var contentsOfDiv = localStorage.getItem("key"+pid);
        $("#Div").html(contentsOfdDiv);
    }
});

The problem is that the pid value will change eventually and I don't want to overwrite the contents of the key.

How can I proceed to stack every Div content that localStorage is saving for me ?

Upvotes: 2

Views: 1962

Answers (2)

Denys Séguret
Denys Séguret

Reputation: 382102

You can iterate on localStorage entries just like on any object properties :

for (var key in localStorage) {
    console.log(key, localStorage[key]);
}

So your code could be :

$(function() {
    var lines = [];
    for (var key in localStorage) {
        if (/^key/.test(key)) { // does the key start with "key"
           lines.push(key.slice(3) + ' = ' + localStorage[key]);
        }
    }
    $("#Div").html(lines.join('<br>'));
});

Upvotes: 5

bgusach
bgusach

Reputation: 15143

If I have understood well, you want to use pid to loop over the object.

Best way to do this and avoid for in chain prototypical problems is the following:

(I think for this case you are better with an array rather than with an object)

http://jsfiddle.net/hqkD9/

    var localStorage = ['aaaa', 'bbbbb', 'cccc', 'dddd'];   // don't forget to declare with var

    var html_string = '';
    $.each(localStorage, function(index, value) {
        html_string += value + '<br>';
    });

    $('#my_div').html(html_string);        

Upvotes: 0

Related Questions