修改本地存储?

2023-11-25

我正在使用 simplecartjs 为在线商店提供支持。它将数据存储在本地存储中,如下所示:

{"SCI-1":{"quantity":1,"id":"SCI-1","price":20,"name":"Mattamusta -teippi","size":"Tyhjä"},"SCI-3":{"quantity":1,"id":"SCI-3","price":19,"name":"Mohawk .vaimennusmatto 48 x 39cm"},"SCI-5":{"quantity":2,"id":"SCI-5","price":8,"name":"Car Speaker -hajuste","color":"Green Tea"},"SCI-7":{"quantity":1,"id":"SCI-7","price":50,"name":"Asennuspaketti"},"SCI-9":{"quantity":1,"id":"SCI-9","price":30,"name":"Quartz-kalvot","color":"Yellow","size":"50cm x 30cm"},"SCI-11":{"quantity":1,"id":"SCI-11","price":30,"name":"Quartz-kalvot","color":"True Blue","size":"50cm x 30cm"}}

我想添加这一行before它已经关闭了。

"SCI-12":{"quantity":1,"id":"SCI-12","price":5,"name":"Toimituskulut"}

但是,产品的数量将取决于用户等SCI-12必须随着项目数量的增加而增长。

EDIT其实没必要用SCI-1,可以是任何内容,只要在items后面即可。

EDIT2这就是我正在尝试的......但没有运气。

$("#matkahuolto").click(function(){
    var value_object = '"Toimituskulut":{"quantity":1,"id":"Toimituskulut","price":5,"name":"Toimituskulut"}';
    var json_object = JSON.parse(localStorage.your_json); // convert string to object

    json_object["simpleCart_items"] = value_object; // add value

    localStorage.your_json = JSON.stringify(json_object);  // store it again.

    });

    $("#posti").click(function(){
    var json_object = JSON.parse(localStorage.your_json); // convert string to object

    json_object["simpleCart_items"] = value_object; // add value

    localStorage.your_json = JSON.stringify(json_object);  // store it again.

    });

EDIT3 A screenshot of localstorage. LocalStorage


您需要了解的第一件事是项目如何存储在本地存储,它基本上就像一个哈希图/字典,其中的项目存储在键值对中。

例如要存储一个string localStorage你会做类似的事情

localStorage["myKey"] = "some value";

要检索该值,只需相反即可

var myValue = localStorage["myKey"];

接下来要意识到的是,事实上你可以only将字符串存储在 localStorage 中,因此如果要存储对象,需要首先将其转换为字符串表示形式。这通常是通过将对象转换为JSON这是一种紧凑的表示法,用于将对象表示为字符串。要将对象转换为 JSON,您只需使用JSON.stringify方法,并解析您使用的项目JSON.parse method

例如将对象转换为 JSON

var someObject = {id: 1, name: 'Test'};

var jsonSomeObject = JSON.stringify(someObject); 
// jsonSomeObject looks like "{"id":1,"name":"test"}"

并从 JSON 读取对象

someObject = JSON.parse(jsonSomeObject);

所以现在在你的情况下假设你的对象包含适当的数据你需要做的就是stringify你的对象并将其添加到localStorage使用一些键,

var jsonData = JSON.stringify({"SCI-12":{"quantity":1,"id":"SCI-12","price":5,"name":"Toimituskulut"}});

localStorage["aKey"] = jsonData;

当您稍后想要访问此数据时(大概是在返回页面之后)

var mySCI = JSON.parse(localStorage["aKey"])

例如,如果您尝试更新 localStorage 中的特定条目,那么您只需将其读入然后覆盖它

var mySCI = JSON.parse(localStorage["aKey"]);
mySCI.SCI-12.quantity = 2;
localStorage["aKey"] = JSON.stringify(mySCI);

请记住,虽然大多数浏览器都内置了对 JSON 的支持,但有些旧浏览器却没有,如果这是一个问题,您可以包括 Douglass CrockfordsJSON-js脚本来提供支持。

Edit:

根据您刚刚发布的屏幕截图,您可以看到 localStorage 中存储值的键实际上是 simpleCart_items (而不是代码中使用的 your_json ),并且正在存储的对象存储了一个对象在“SCI-1”键下(可能还有“SCI's”下的其他键)。所以您需要做的是如下所示

 $("#matkahuolto").click(function(){
    var value_object = {quantity: 1, id: 1, name: "someName"} ; 
    var jsonObject = JSON.parse(localStorage["simpleCart_items"]);
    json_object["SCI_1"] = value_object; // add value

 localStorage["simpleCart_items"] = JSON.stringify(json_object);  // store it again.

});

$("#posti").click(function(){
 // convert string to object
 var json_object = JSON.parse(localStorage["simpleCart_items"]); 

json_object["SCI-1"] = value_object; // add value

 localStorage["simpleCart_items"] = JSON.stringify(json_object);  // store it again.

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改本地存储? 的相关文章

随机推荐

  • 如何将 tweepy Twitter 流保存到文件中?

    我有一个工作脚本 可以成功收集提到 stackoverflow 的推文 但是 我想在 iPython 中运行该脚本 而不是执行单独的 py 文件 理想情况下 我只想打开它的 ipyb 文件 选择全部运行 然后让它运行一周左右 当然不要关闭我
  • 如何避免 cmd.exe 弹出命令窗口

    我有一个命令 cmd exe c ping 1 1 1 1 n 1 w 10000 echo second command goes here 但执行时它会打开一个命令窗口 有没有办法避免弹出命令窗口 PS 我无法从那里删除 cmd exe
  • 使用 Fetch API 读取分块的二进制响应

    如何使用 Fetch API 读取二进制分块响应 我正在使用以下代码 该代码可以从服务器读取分块响应 然而 数据似乎以某种方式编码 解码 导致getFloat32有时会失败 我尝试使用curl 读取响应 效果很好 这让我相信我需要做一些事情
  • 在 constrOptim 中设置约束

    有没有一种简单的方法可以在 constrOptim 函数中为以下约束设置 theta ui ci c1
  • 如何使用 Eloquent 对分组结果进行排序?

    我已经尝试解决这个问题有一段时间了 但似乎无法使其发挥作用 我有一张与此类似的桌子 表 问题 id yearly issue year stock created at updated at magazine id 1 10 2000 1
  • 如何使用 HTML 验证日期范围?

    或者 是否可以使用 HTML 验证另一个字段的值 一个常见的示例是选择一个日期范围 其中 起始 日期应小于或等于 截止 日期 如果您可以在语法中使用元素引用 则以下内容将描述值之间所需的关系
  • 更改 Velocity.Log 文件的位置

    看起来很简单 文档位于http velocity apache org engine devel developer guide html Configuring Logging说要设置runtime log属性 这是我所有财产的所得 ve
  • 获取android中用户的语言

    http web archiveorange com archive v fwvde0wN3xcViMtADw6x 似乎 navigator language 属性在 android 上的 webview 中始终为 en 那么 获取用户语言
  • 确定硬币组合的算法

    最近 我遇到了一个关于编程算法的提示 但我不知道该怎么做 我以前从未真正编写过算法 所以我在这方面还是个新手 该问题要求编写一个程序来确定收银员根据硬币价值和硬币数量找零的所有可能的硬币组合 例如 一种货币可能有 4 个硬币 2 分 6 分
  • 有没有办法获取当前函数的函数名?

    defun foo send to debug log Error Function terminated get current function name 我目前这样做 defun foo send to debug log Error
  • 当购物车达到一定数量时添加促销产品

    我正在 WooCommerce 中寻找正确的钩子 因为当达到一定的购物车数量 例如 100 个常规单位 时 我需要将促销产品添加到购物车 我也用过钩子 init 但我认为这是不对的 这是我的代码 function add free prod
  • OpenCV for Android:无法加载级联分类器错误

    这是我第一次使用 openCV 库 我想用它来检测眼睛 我已经用过FdActivity本教程中提供的代码 http romanhosek cz android eye detection updated for opencv 2 4 6 本
  • 使用 Perl 匹配两个重叠模式

    我希望我的问题还没有被其他人提出 因为我试图查看网站上的几乎所有地方 但我无法找到答案 我的问题是 我正在制作一个 PERL 脚本 它必须检测每一次出现 of one or字符串中的另一个模式 例如 string betaalphabeta
  • 从 C# 类生成 UML 图

    我有 nHibernate 生成的类 用作持久保存到 SQL 数据库的 MVC 项目的 BO 我想将现有代码呈现为 UML 图表 以便我可以开始使用代码生成实用程序 与所问的类似here仅适用于 SQL nhibernate SO 建议从
  • 如何在 javascript 中对 url 进行编码并在 C# 中对其进行解码

    我有一个带有查询字符串的网址 通过它传递一些数据 我想在服务器端检索数据 这个问题的解决办法是什么 您可以使用 javascript 的转义函数对 URL 进行编码 Example escape It s me result It 27s
  • 我应该如何理解&**self in Box

    boxed rs 中的代码 stable feature rust1 since 1 0 0 rustc const unstable feature const box issue 92521 impl
  • 全新的rails应用程序,无法生成脚手架

    虽然我不是专家 但我已经在内部开发了一些 Rails 应用程序 用于一些相对小型 中型的项目 并且之前没有遇到过与此类似的问题 我只是想创建一个新的应用程序 然后创建一个脚手架 但我收到了有关 sqlite3 gem 的错误 看看这个 我的
  • ExpandableListView 显示没有子项的组的指示器

    我正在创建一个ExpandableListView与数据库中的数据 为此 我正在使用CursorTreeAdapter我用一个填充它Cursor包含我从数据库检索的数据的对象 我认为 默认情况下Android会考虑没有孩子的组 不可扩展 但
  • 为什么从 v6 升级到 IdentityModel v7 后出现 IDX20803 错误?

    升级后Microsoft IdentityModel Tokens and System IdentityModel Tokens Jwt to 7 0 0 我收到此错误 IDX20803 无法从 https example com rea
  • 修改本地存储?

    我正在使用 simplecartjs 为在线商店提供支持 它将数据存储在本地存储中 如下所示 SCI 1 quantity 1 id SCI 1 price 20 name Mattamusta teippi size Tyhj SCI 3