Reputation: 14490
I'm trying to change a value inside localstorage. This item is the status of a checkbox. I want, everytime that a checkbox is checked to set the value to true or false of that checkbox. I tried many ways until I realized that there is no way you can change a value without using JSON.
To add the value I use:
localStorage.setItem("status-" + i, $status.is(":checked"));
and to delete I use:
var parentId = $this.parent().attr('id');
localStorage.removeItem("'" + parentId + "'");
Now to change the value I tried:
$itemList.delegate("#status-" + i, 'click', function(e) {
var $this = $(this);
var parentId = this.parent().attr('id');
if ($this.is(":checked")) {
localStorage.setItem("'" + parentId + "'".val("fdgsdagf"));
// Note that alert here works.
}
});
This is how my local storage looks like: I hope someone could help me. I've been working on it for few days...
Thanks alot
Upvotes: 6
Views: 31916
Reputation: 82584
setItem
takes two parameters:
localStorage.setItem('status-1', "'" + parentId + "'".val("fdgsdagf"));
or more likely for your case:
localStorage.setItem(parentId, "fdgsdagf");
Best Practices:
localStorage.setItem('key', JSON.stringify(value));
JSON.parse(localStorage.getItem('key'));
Here's an example: http://jsfiddle.net/F8sF2/
EDIT: from you fiddle, you need to change:
var parentId = this.parent().attr('id');
to
var parentId = $this.attr('id');
UPDATED http://jsfiddle.net/CC5Vw/1/
Upvotes: 5
Reputation: 69905
Try this
localStorage.setItem(parentId, "fdgsdagf");
localStorage
is nothing but JavaScript object you can treat them as associate array. So you can use them like this.
To set value
localStorage[parentId] = "fdgsdagf";
To get value
var status = localStorage[parentId];
Upvotes: 4