When I click on a button I load the function "DeleteFromlocalStorage" with the parameter "id". This is my function "DeleteFromlocalStorage":
function DeleteSessionFromLocalStorage(data)
{
var id_session = data;
a = localStorage.getItem('session');
alert(a);
}
My alert(a);
gives me this output:
{"21114":{"id":"21114","external_id":"","sessiongroupid":"1844","eventid":"5588","order":"0","name":"localStorage HTML5 Session","description":"localstorage","starttime":"2013-04-23 12:00:00","endtime":"2013-04-23 13:30:00","speaker":"","location":"","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan","imageurl":"","presentation":"","organizer":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes":"0","url":"","venueid":"0"}, "21115 :{"id":"21115","external_id":"","sessiongroupid":"1845","eventid":"5588","order":"0","name":"tweede","description":"tweede","starttime":"2013-04-03 00:00:00","endtime":"2013-04-04 00:00:00","speaker":"","location":"","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan","imageurl":"","presentation":"","organizer":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes":"0","url":"","venueid":"0"},"21118":{"id":"21118","external_id":"","sessiongroupid":"1848","eventid":"5588","order":"0","name":"ja vascript session","description":"session about javascript","starttime":"2013-05-15 12:00:00","endtime":"2013-05-15 12:30:00","speaker":"","location":"waregem","mapid":"0","xpos":"0.000000","ypos":"0.000000","maptype":"plan","imageurl":"","presentation":"","organizer":"0","twitter":"","allowAddToFavorites":"0","allowAddToAgenda":"0","votes":"0","url":"","venueid":"0"}}
As you can see I have a json string. The key is always the id. Now I want to delete the json with the id = parameter id.
I will have to get the object and delete the subobject and restore the object in my localStorage. Does anybody know how I can do this?
Thanks in advance!
Stringifying anything large into a single localStorage entry is very inefficient if you ever need to edit it.
You need http://rhaboo.org - that's what it's for. It's a wrapper for localStorage that uses lots of localStorage entries so you can efficiently edit bits of a large object.
The API is incredibly simple, eg:
var store = Rhaboo.persistent('Sessions etc');
//Initialise only if the store seems virginal...
if (store.sessions === undefined) store.write('sessions', {
"21114":{"id":"21114","external_id":"","sessiongroupid":"1844","eventid":"5588"},
"21115":{"id":"21115","external_id":"","sessiongroupid":"1845","eventid":"5588"},
"21118":{"id":"21118","external_id":"","sessiongroupid":"1848","eventid":"5588"}
});
console.log(store.sessions[21114].eventid);
store.sessions.erase(21115);
BTW, I wrote rhaboo.
I may be wrong but here is what you want to do:
Either localStorage.removeItem(key);
Or if ifs something within the localStorage JSON item then do:
function DeleteSessionFromLocalStorage(data)
{
var id_session = data;
//Not sure but you might need to do JSON.parse(a) after to get it
a = localStorage.getItem('session');
delete a.data
alert(a);
}
Your code sample just looks like a javascript object to me. In which case you can use the 'delete' keyword. Good discussion here:
How do I remove a property from a JavaScript object?
So something like
delete a["21114"]
for(obj in json) {
if(json[obj].id == id_session)
{
delete json[obj];
}
}
localStorage.setItem('session', JSON.stringify(json));
Get the objects, check every id of every object and delete the ones with the id = "id_session".
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.