【发布时间】:2020-11-04 04:27:06
【问题描述】:
我有一个代码,我可以在其中在本地存储中添加、显示和删除对象及其工作,但每当我尝试更新特定对象,它会覆盖所有内容,而不仅仅是更改我想要的特定对象
我的代码
$(".qty-val-ls").on("change", function() {
let record = localStorage.getItem("guestCart");
let index = $(this).attr("id");
if(record == null)
{
recordObj = [];
}else{
recordObj = JSON.parse(record);
}
recordObj[index].price = $(this).val() * parseInt(recordObj[index].price);
localStorage.setItem('guestCart', recordObj[index].price);
})
我的输入
<input type="number" class="qty-val-ls" min="1" id="${index}" value="4000" onChange="">
这里的${index}是本地存储中的id,jquery中的index是对象在本地存储中的编号,它从 0、1、2 等开始
我的阵列(本地存储中的对象)
[{"id":"11","name":"Rts 512GB USB Flash Drive Pendrive Memory USB 3.0","price":"3000","img":"newusb.png","qty":1},
{"id":"10","name":"MP3 Music Player Audio Player -Black","price":"5000","img":"mp3.png","qty":1},
{"id":"5","name":"Blue Louis Vuitton Women Bag","price":"10000","img":"newbag.png","qty":1},
{"id":"1","name":"Samsung Galaxy S9 6gb ram, 32gb rom, 16mpbs","price":"100000","img":"newphone.png","qty":1}]
请问我如何在计算后更改值并能够将其放回应有的位置
编辑:我已经检查了有关 stackoverflow 的其他类似问题,但似乎没有一个有效
【问题讨论】:
-
Do localStorage.setItem('guestCart', recordOb);而不是localStorage.setItem('guestCart', recordObj[index].price); -
还要小心设置价格值的行,因为当您将
recordObj初始化为空数组时,recordObj[index].price = ...会抛出错误 -
@Ravi 它返回 [object Object]:"[object Object]"
-
@VirgilioGM 那么我该如何设置呢
标签: javascript jquery arrays object local-storage