Javascript HTML5本地存储JSON多个对象
有人知道吗,当我在javascript中执行循环时,是否可以创建一个包含多个对象的本地存储 目前,我的代码如下所示:Javascript HTML5本地存储JSON多个对象,javascript,html,local-storage,Javascript,Html,Local Storage,有人知道吗,当我在javascript中执行循环时,是否可以创建一个包含多个对象的本地存储 目前,我的代码如下所示: var albums = ''; var album_list = ''; $.each(data, function(i,item){ var name = item.name; albums += '<li>'+item.name+'</li>'; var album_content = {name: item.name, uid
var albums = '';
var album_list = '';
$.each(data, function(i,item){
var name = item.name;
albums += '<li>'+item.name+'</li>';
var album_content = {name: item.name, uid: 1};
var album_content = album_content+',';
album_list += album_content;
});
var album_list = '['+album_list+']';
localStorage.setItem("albums", JSON.stringify(album_list));
var albums_l = JSON.parse(localStorage.getItem("albums"));
$.each(albums_l, function(i,item){
console.log(item.name);
});
var相册=”;
变量列表=“”;
$。每个(数据、功能(i、项){
var name=item.name;
相册+=''+项目名称+' ';
var album_content={name:item.name,uid:1};
var album_content=album_content+',';
相册列表+=相册内容;
});
var album_list='['+album_list+']';
setItem(“albums”,JSON.stringify(album_list));
var albums_l=JSON.parse(localStorage.getItem(“albums”);
$。每个(相册、功能(i、项目){
console.log(item.name);
});
但这给了我一个错误。
任何人都有更好的解决方案,所以我只有一个localstorage和其中的所有数据?您在代码中混合了对象和字符串。您的
album\u内容
在循环中被初始化为对象({name:item.name,uid:1}
)。在下一行中,通过添加逗号将其视为字符串
总体而言,使用数组收集所有对象。使用本机对象(几乎)总是比试图以某种方式模拟它们要好
请尝试此代码
var albums = '';
var album_list = [];
$.each(data, function(i,item){
var name = item.name;
albums += '<li>'+item.name+'</li>';
var album_content = {name: item.name, uid: 1};
// remove that line completly
// var album_content = album_content+',';
album_list.push( album_content );
});
localStorage.setItem("albums", JSON.stringify( album_list ));
var albums_l = JSON.parse(localStorage.getItem("albums"));
$.each(albums_l, function(i,item){
console.log(item.name);
});
var相册=”;
var相册_列表=[];
$。每个(数据、功能(i、项){
var name=item.name;
相册+=''+项目名称+' ';
var album_content={name:item.name,uid:1};
//完全去掉那条线
//var album_content=album_content+',';
相册列表。推送(相册内容);
});
setItem(“albums”,JSON.stringify(album_list));
var albums_l=JSON.parse(localStorage.getItem(“albums”);
$。每个(相册、功能(i、项目){
console.log(item.name);
});
出了什么问题:
var albums = '';
var album_list = '';
$.each(data, function(i,item){
var name = item.name;
albums += '<li>'+item.name+'</li>';
var album_content = {name: item.name, uid: 1};
// at this point album_content is an object.. so it will be this string afterwards: "[object Object],"
var album_content = album_content+',';
album_list += album_content; //you're adding "[object Object],"
});
// album_list will now look like this: '["[object Object],[object Object],"]'
var album_list = '['+album_list+']';
localStorage.setItem("albums", JSON.stringify(album_list));
var albums_l = JSON.parse(localStorage.getItem("albums"));
$.each(albums_l, function(i,item){
console.log(item.name);
});
var相册=”;
变量列表=“”;
$。每个(数据、功能(i、项){
var name=item.name;
相册+=''+项目名称+' ';
var album_content={name:item.name,uid:1};
//此时,album_内容是一个对象。因此,后面将是这个字符串:“[object],”
var album_content=album_content+',';
album_list+=album_content;//您正在添加“[object],”
});
//相册列表现在将如下所示:“[”[对象对象],[对象对象对象],“]”
var album_list='['+album_list+']';
setItem(“albums”,JSON.stringify(album_list));
var albums_l=JSON.parse(localStorage.getItem(“albums”);
$。每个(相册、功能(i、项目){
console.log(item.name);
});
如何纠正:
var albums = '';
var album_list = [];
$.each(data, function(i,item){
var name = item.name;
albums += '<li>'+item.name+'</li>';
var album_content = {name: item.name, uid: 1};
album_list.push(album_content);
});
localStorage.setItem("albums", JSON.stringify(album_list));
var albums_l = $.parseJSON(localStorage.getItem("albums"));
$.each(albums_l, function(i,item){
console.log(item.name);
});
var相册=”;
var相册_列表=[];
$。每个(数据、功能(i、项){
var name=item.name;
相册+=''+项目名称+' ';
var album_content={name:item.name,uid:1};
相册列表。推送(相册内容);
});
setItem(“albums”,JSON.stringify(album_list));
var albums_l=$.parseJSON(localStorage.getItem(“albums”);
$。每个(相册、功能(i、项目){
console.log(item.name);
});