- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 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 将是三,但我仍然会拥有不会显示的 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]
}
关于javascript - 从 WebStorage 获取一组的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203350/
所以,我有一个想要用文本填充的标签。此文本在多个页面上都是相同的,我希望能够更改此文本,而无需单独编辑每个页面。 我可以使用 javascript 和 WebStorage 来完成此操作,但这似乎不是
我正在使用网络存储 但是当我刷新页面时,我在浏览器中看不到提交的值... 你知道为什么... 在下面提供我的代码 http://codepen.io/anon/pen/mPBQxX $('.stor
我想使用 WebStorage 在我的网站上实现简单的购物车系统。项目是具有格式和金额值的图片。有一个计数器值,其中包含当前存储中可用的项目数,每个新项目都会以以下格式添加到 WebStorage:
我有多个复选框,单击这些复选框时,会向我的 jquery fullcalendar 添加一个 eventSource。当我刷新页面时,我可以从存储中检索复选框值,但不会添加事件源。我必须取消选中然后重
您好,如果 referrer 是 example.com,我想隐藏所有页面的一些数据,我正在使用网络存储但无法正常工作 if (document.referrer !== 'example.com/
是否可以将事件监听器保存到网络存储中? var entity = document.createElement("a"); entity.addEventListener("click", funct
在使用 HTML5 WebStorage 功能时,我知道某些浏览器(如 Chrome)具有开发人员工具,使用户能够浏览其 WebStorage 的内容以进行调试和故障排除。 我想知道是否可以在文件系统
这是我的代码: 给定一个对象,我尝试在 webStorage 数据库中插入一些数据。问题是控制台返回给我一个“未定义不是函数”,我不知道为什么 这是我的代码片段 try { db = openDa
我在运行测试时尝试访问 WebStorage,我使用 ChromeDriver 在本地运行测试,并使用 RemoteWebDriver 在管道中远程运行测试。 使用 RemoteWebDriver 时
我有一个原生的 sqlite 数据库,我想通过 HTML5 webstorage 加载/读取它。但我无法那样做。我已经通过将文件放在同一文件夹中并运行以下脚本来尝试过。 Search var
我正在研究将 mysql 数据库转换为 phonegap 应用程序。 现在使用 HTML5 有一个 Web 存储规范(它通常称为本地存储吗?) 这就是我相信 Phonegap 通过它的存储方法/api
我正在尝试获取表单值并使用 html5 本地存储显示这些值 我已经写了html和js代码 但我不知道如何在 div 标签内显示输入的 webstorage 值 显示表单值---第一项 你能告诉我如何解
我对 HTML5 中客户端存储的能力有一些疑问。到目前为止,我发现了三种不同的可能性: WebSQLDatabase :支持存储在 SQLite 数据库中的客户端站点 SQL 表。本标准已停产。这是否
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Best way to synchronize local HTML5 DB (WebSQL Storage
我正在尝试测试一个依赖于 localStorage 的应用程序。当我手动与浏览器交互时,一切正常。然而,在 nightwatch.js 中,当请求 localStorage 时,我得到的是 null
是否可以将从 jspdf 创建的文档存储在 HTML5 网络存储中?我想保存它,这样我就可以继续添加其他页面的内容,直到用户按下下载按钮。下面的代码没有给我任何错误,但文档始终只包含最后一页。 let
我收到来自 Firestore 的以下错误. "Firestore (7.24.0): Received WebStorage notification for local change. Anoth
我想保留用户使用 WebStorage API 写入 WordPress TinyMCE 编辑器的数据。我在前端启动了编辑器one of my plugin . 条件是,填写完文本区域后,用户可以选择
我正在尝试构建一个由其他人创建但遇到未满足的依赖项问题的项目。 NPM 安装命令提示 ngx-webstorage 需要 angular 5.0.0 而我确实没有安装 5.0.0 因为项目的其余部分还
我正在尝试找到以下问题的答案,即在 Angular 4 或更高版本(如 5)中使用 session 存储的最合适方式。 目前项目正在使用 HTML5 窗口 localStorage 和 session
我是一名优秀的程序员,十分优秀!