J
Juanjo87
Gamma
Diseñador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas, estoy intentado recuperar los datos guardados en el storage, pero no soy capaz.
Tengo esto:
Que al hacer click en cada elemento de una lista " li li li" se agrega una key con un value en el storage, ejemplo key 1 value 1, key 2 value 2....
el problema lo tengo al intentar recuperar esas keys o values para después, con esos datos, añadirle una clase a un div.
He intentado esto:
pero no funciona.
Se le ocurre a alguien como puedo solucionarlo?
Así tengo el código completo:
- - - Actualizado - - -
SOLUCIONADO...SOLUCIONADO...SOLUCIONADO...SOLUCIONADO
Pues lo he solucionado así:
Funciona bien pero lo veo algo sucio el codigo, me dice alguien como puedo mejorar el código? Por mejorar simplemente, Gracias.
Tengo esto:
PHP:
<script>
$('ul.capitulos li').on('click', function (e) { // something with the class store clicked
e.preventDefault();
var storeStorageKey2 = $(this).children("a").children("span").children("i.fa-check").attr("id"); // store id of the item
$(this).children("a").children("span").children("i.fa-check").addClass("current");
$(this).data('value', storeStorageKey2);
localStorage.setItem(storeStorageKey2, $(this).data('value'));
});
</script>
Que al hacer click en cada elemento de una lista " li li li" se agrega una key con un value en el storage, ejemplo key 1 value 1, key 2 value 2....
el problema lo tengo al intentar recuperar esas keys o values para después, con esos datos, añadirle una clase a un div.
He intentado esto:
PHP:
<script>
var storeStorageKey2 = localStorage.getItem(storeStorageKey2);
if (storeStorageKey2 != null) {
$('#' + storeStorageKey2).addClass("current");
}
</script>
pero no funciona.
Se le ocurre a alguien como puedo solucionarlo?
Así tengo el código completo:
PHP:
<script>
$(document).ready(function () {
$('ul.capitulos li').on('click', function (e) { // something with the class store clicked
e.preventDefault();
var storeStorageKey2 = $(this).children("a").children("span").children("i.fa-check").attr("id"); // store id of the item
$(this).children("a").children("span").children("i.fa-check").addClass("current");
$(this).data('value', storeStorageKey2);
localStorage.setItem(storeStorageKey2, $(this).data('value'));
});
var storeStorageKey2 = localStorage.getItem(storeStorageKey2);
if (storeStorageKey2 != null) {
$('#' + storeStorageKey2).addClass("current");
}
});
</script>
- - - Actualizado - - -
SOLUCIONADO...SOLUCIONADO...SOLUCIONADO...SOLUCIONADO
Pues lo he solucionado así:
PHP:
<script>
$(document).ready(function () {
$('ul.capitulos li a').on('click', function (e) {
e.preventDefault();
var storeStorageKey = $(this).children("span").children("i.fa-check").attr("id");
$(this).children("span").children("i.fa-check").addClass("current");
$(this).data('value', storeStorageKey);
localStorage.setItem($(this).data('value') + ".key", $(this).data('value'));
});
for (i=0; i<=localStorage.length-1; i++) {
key = localStorage.key(i);
if(key.indexOf(".key") != -1) {
/* console.log(key +' contiene '+ localStorage.getItem(key) );*/
$('#' + localStorage.getItem(key)).addClass("current");
}
}
});
</script>
Funciona bien pero lo veo algo sucio el codigo, me dice alguien como puedo mejorar el código? Por mejorar simplemente, Gracias.
Última edición:

