我正在尝试将元素动态推送到数组。但我的代码不起作用。我想在jquery中添加数组元素onclick。当我推送一个元素时,它会被添加,但当我尝试添加第二个元素时,第一个元素被删除,只添加了第二个元素。无法动态添加元素。
这是我动态推送元素的代码:
$('#addItemFromAjax').click(function(){
var storage = '{"items":[]}';
var itemObject = JSON.parse(storage);
itemObject["items"].push({"name":data[0].name,"id":data[0].id});
localStorage.setItem('itemList', JSON.stringify(itemObject));
alert(localStorage.getItem('itemList'));
});
答案 0 :(得分:3)
尝试以下代码。它将首先使用localStorage列表,否则将初始化它。
此外,您始终从data
推送第一个元素,因此可能需要根据您的要求进行更改!
$('#addItemFromAjax').click(function(){
var storage = localStorage.getItem('itemList') || '{"items":[]}';
var itemObject = JSON.parse(storage);
itemObject["items"].push({"name":data[0].name,"id":data[0].id});
localStorage.setItem('itemList', JSON.stringify(itemObject));
alert(localStorage.getItem('itemList'));
});