2011-03-23 10 views

Respuesta

46

De HTML5 reference:

Like other JavaScript objects, you can treat the localStorage object as an associative array. Instead of using the getItem() and setItem() methods, you can simply use square brackets.

localStorage.setItem('test', 'testing 1'); 
localStorage.setItem('test2', 'testing 2'); 
localStorage.setItem('test3', 'testing 3'); 

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

//test for firefox 3.6 see if it works 
//with this way of iterating it 
for(var i=0, len=localStorage.length; i<len; i++) { 
    var key = localStorage.key(i); 
    var value = localStorage[key]; 
    console.log(key + " => " + value); 
} 

Esta es la salida:

testing 3 
testing 2 
testing 1 

test3 => testing 3 
test2 => testing 2 
test => testing 1 

Aquí está el localStorage JSFiddle Demo

+0

Funcionó para mí en Chrome, pero Firefox 3.6 arrojó el error "TypeError: null no tiene válido __iterator__ value null" – Kyle

+0

@Kyle funciona muy bien en firefox 4. salió ayer déjame comprobar 3.6 – kjy112

+0

@Kyle Aunque Firefox admite localStorage , puede ser apagado. Verifique que esté encendido. Vaya a about: config y compruebe que dom.storage.enabled está establecido en verdadero. – kjy112

2

Dado que localStorage es clave-valor con cadenas, simplemente serialícela con JSON, y deserialícela cuando desee recuperarla.

localStorage.setItem("bar", JSON.stringify([1,2,3])); 
var foo = localStorage.getItem("bar"); 
JSON.parse(foo); 
// returns [1,2,3] 
21

es referencia al objeto window.St orage, por lo que u puede utilizarlo como cada otro objeto:

Get variedad de artículos

Object.keys(localStorage) 

Get longitud

Object.keys(localStorage).length 

Iterar con jQuery

$.each(localStorage, function(key, value){ 
    ..... 
}) 
+4

jQuery ?! Facepalm. 'Object.keys (localStorage) .forEach (key => console.log (localStorage [key]));' – c24w

+0

¿Hay alguna manera de obtener entradas para todos los dominios, en lugar de la que se encuentra en la pestaña actual? – mins

0

puede utilizar Object.assign() :

var data = Object.assign({}, localStorage) 
Cuestiones relacionadas