从WebStorage获取一个组的所有项目
Getting all items of one group from WebStorage
我想在我的网站上使用WebStorage实现简单的购物车系统。项目是具有格式和金额值的图片。有一个计数器值,它包含当前存储中可用的项目数量,每个新项目都以这种格式添加到WebStorage中:
item<id> = 1:3,5
现在我有一个从存储中列出项目的问题。例如,如果用户购买了5件物品并删除了item0
和item3
(item -= 2
),即使我检查元素是否存在于存储中,我也无法通过简单的For循环获得所有值:
var len = parseInt(localStorage.getItem("items"));
for (let i = 0; i < len; i++) {
if (localStorage.getItem("item" + i)) {
// show element on the page
}
}
Len将是3,但我仍然有item5
,它不会显示。
我应该做一个新的数组的项目的ID和删除ID的项目从页面删除或有一个更好的方法来处理这个?
最好使用JSON对象来处理所有内容。
你的代码看起来像这样设置数据:
// initial data
var cartData = {
items: ['item1', 'item2', 'item3']
};
// stringify your object so it can be saved into localStorage
localStorage.setItem('cart', JSON.stringify(cartData));
然后你可以很容易地删除/循环通过项目:
// get cart
var cartData = JSON.parse( localStorage.getItem('cart') );
// delete 2nd item
cartData.items.splice(1, 1);
// loop through items
for(var i = 0, l = cartData.items.length; i < l; i++) {
// do something with cartData.items[i]
}
相关文章:
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- 通过另一个php应用程序将我的项目推送到Github存储库中
- angularjs移除焦点上的活动类并添加到下一个项目
- 相对于角度控制器中的另一个阵列过滤阵列项目
- 如何通过AngularJS删除一个项目
- 如何使用jquery将所选项目从一个下拉组列表(optgroup)移动到另一个下拉列表(optgroup)
- 获取每个项目中不为 null 的最后一个项目
- 在另一个项目中使用大理石测试rxjs5方法
- 使用javascript/jquery从现有数组中创建一个新数组,该数组保存项目存在的次数
- 如何在猫头鹰旋转木马中滑动所有可见项目,而不是使用上一个/下一个按钮
- Git为整个项目提供一个repo(frontend+node.js)
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- Asp.net 引导下拉菜单 - 选择一个项目
- 处理一个项目,想要添加以下菜单栏,并尽量减少向下滑动
- 如何将从GWT编译的JS添加/访问到另一个外部HTML / JS项目中
- 在angularJs的选择框中预先选择一个项目
- 我想在混合移动应用程序中使用Sqlite插件(Cordova)创建一个示例项目
- 如何将一个表单中的项目添加到 Rails 中另一个表单的下拉选项
- jQuery 使用 ID 作为 URL 选择一个项目
- 淡入<灯光>一个项目一个项目