var product,
numberof,
quantity,
price,
localStorageProd;
function storeProdStorage( product , numberof, quantity, price ) {
var itemsArray = [];
newItem = {
product : product ,
numberof : numberof ,
quantity : quantity ,
price : price
};
if (localStorage["prodbank"] != null) {
var localStorageContentObject = JSON.parse(localStorage["prodbank"]);
itemsArray.push(localStorageContentObject);
for( var i = 0; i < itemsArray.length ; i++ ) {
if(itemsArray[i].product == product) {
itemsArray[i].quantity = quantity;
itemsArray[i].price = price;
localStorage.setItem('prodbank', JSON.stringify(itemsArray[i]));
} else {
itemsArray.push(newItem);
localStorage.setItem('prodbank', JSON.stringify(itemsArray));
}
}
} else {
localStorage.setItem('prodbank', JSON.stringify(newItem));
}
}
$(function() {
$(".quantity-slider").slider({
range: "min",
value: 50,
min: 50,
max: 1000,
step: 50,
slide: function(e,ui) {
var quant = $('.quantity').html(commaSeparateNumber((ui.value) *10));
var price = $('.price').html(ui.value);
if($('.price').html() == "50" ) {
$('.quantity').html(250);
}
product = $(".pricing-title").html();
numberof = $(".pricing-code .form-section h3").contents().get(0).nodeValue;
quantity = $(".pricing-code .form-section h3 .quantity").eq(0).html();
price = $(".pricing-code .form-section h3 .price").eq(0).html();
storeProdStorage(product , numberof, quantity, price );
}
});
$('.quantity').html(($( ".quantity-slider" ).slider("value"))*5);
});
我有一个范围滑块,其值存储在对象中,这些对象被推入数组并存储在localStorage中。这是我想在localStorage中推送它们的格式。
[
{ "product":"Twitter Followers","numberof":"Number of Followers: ","quantity":"5,500","price":"550" },
{ "product":"Facebook Page Likes","numberof":"Number of Likes: ","quantity":"1,000","price":"100" },
{ "product":"Instagram Followers","numberof":"Number of Followers: ","quantity":"2,500","price":"250" },
{ "..":"..","..":"..: ","..":"..","..":".." }
每次范围滑块移动时,我都会根据用户试图购买的产品名称检查新的值,例如“Facebook Page Likes”,“Instagram Followers”。如果名称相同,我只是尝试更新本地存储中数量和价格的值。如果本地存储中不存在该名称,我想将其添加到内部。问题是一切都变得一团糟。当我移动滑块时它实际上更新了本地存储中的值,当它在“Facebook Page Likes”页面上说,但是当我移动滑块时,我会转到另一个(例如“Twitter粉丝”)旧的,并没有添加到以前的。
这是在浏览页面并运行滑块时我在控制台中获得的示例。每次只有一个对象保留在本地存储中,而前一个对象被完全删除。
存储{prodbank:“{”product“:”Facebook Page Likes“,”numberof“:”Likes的数量:“,”数量“:”1,000“,”price“:”100“}”,长度: 1}
我希望它添加并保留旧对象的值,而不是完全删除它。这就是我想要的例子。在这里,您可以看到第二个带有twitter粉丝值的对象存在,并且它已添加到存储
中存储{prodbank:“{”product“:”Facebook Page Likes“,”numberof“:”Likes的数量:“,”数量“:”1,000“,”price“:”100“}”, “{”product“:”推特追随者“,”numberof“:”追随者数量:“,”数量“:”2,000“,”价格“:”200“}”,长度:2}
答案 0 :(得分:2)
如果您希望添加新值而不是覆盖新值,则需要使用+=
而不是=
。这是因为+=
会将右手值添加到左手值,而=
会将左手值替换为右手值
尝试:
itemsArray[i].quantity += quantity;
itemsArray[i].price += price;
如果我对你想要达到的目标的理解是正确的。