我的商店使用localStorage存储购物车。我使用了这一行来检索值:
var kamat = window.localStorage.getItem("simpleCart_items"); alert(kamat);这将检索到如下内容:
{"SCI-1":{"quantity":1,"id":"SCI-1","price":20,"name":"Valkoinen hiilikuitu -teippi","size":"Tyhjä"},"SCI-3":{"quantity":1,"id":"SCI-3","price":4,"name":"Car Speaker -hajuste","color":"Sport Fresh"}}由于我已经将它存储为一个变量,我希望稍后再使用它。
我想在最后的卷曲括号(变量kamat之后)添加这一项。
var toimituskulut = {"Toimitus":{"quantity":1,"id":"Toimituskulut","price":8,"name":"Toimituskulut"}};我尝试过这样做,因为它需要在项目之间设置一个冒号:
var kamatjatoimituskulut = kamat + "," + toimituskulut;但不管用。如果可以,它将在最后的卷曲括号后面插入toimituskulut的内容。那我需要做什么?
编辑
当单击按钮时,我试图编辑它:
$("#posti").live('click', function() {
$(".maksu").slideDown(600);
$("#posti").attr("disabled" , "disabled");
$("#matkahuolto").removeAttr("disabled");
$("#posti").addClass( "selectedtoimitus" );
$("#matkahuolto").removeClass( "selectedtoimitus" );
$(".simpleCart_shipping").html(kamat);
var kamatObj = JSON.parse(localStorage["simpleCart_items"]);
kamatObj['toimituskulut'] = toimituskulut;
localStorage["simpleCart_items"] = JSON.stringify(kamatObj);
});但是不,它不会增加任何东西。
JSFIDDLE
因此,如果本地存储看起来如下::
{"SCI-1":{"quantity":1,"id":"SCI-1","price":20,"name":"Valkoinen hiilikuitu -teippi","size":"Tyhjä"},"SCI-3":{"quantity":1,"id":"SCI-3","price":4,"name":"Car Speaker -hajuste","color":"Sport Fresh"}}--当我点击按钮时,我希望它看起来像这样
{"SCI-1":{"quantity":1,"id":"SCI-1","price":20,"name":"Valkoinen hiilikuitu -teippi","size":"Tyhjä"},"SCI-3":{"quantity":1,"id":"SCI-3","price":4,"name":"Car Speaker -hajuste","color":"Sport Fresh"},"Toimitus":{"quantity":1,"id":"Toimitus","price":5,"name":"Toimituskulut"}}但是做var kamatjatoimituskulut = kamat + "," + toimituskulut;只会输出类似的东西,对吗?
{"SCI-1":{"quantity":1,"id":"SCI-1","price":20,"name":"Valkoinen hiilikuitu -teippi","size":"Tyhjä"},"SCI-3":{"quantity":1,"id":"SCI-3","price":4,"name":"Car Speaker -hajuste","color":"Sport Fresh"}},"Toimitus":{"quantity":1,"id":"Toimitus","price":5,"name":"Toimituskulut"}发布于 2012-09-16 18:08:09
如果有两个包含JSON字符串的变量,如下所示:
var kamat = '{"SCI-1":{"quantity":1,"id":"SCI-1","price":20,"name":"Valkoinen hiilikuitu -teippi","size":"Tyhjä"},"SCI-3":{"quantity":1,"id":"SCI-3","price":4,"name":"Car Speaker -hajuste","color":"Sport Fresh"}}';
var toimituskulut = '{"Toimitus":{"quantity":1,"id":"Toimituskulut","price":8,"name":"Toimituskulut"}}';您需要像这样将这些字符串解析为json (我使用的是jQuery):
var kamatJSON = $.parseJSON(kamat);
var toimitusJSON = $.parseJSON(toimituskulut);然后像这样把它们加在一起:
$.extend(kamatJSON, toimitusJSON);由于它是一个对象,如果您访问的值如下:
kamatJSON.Toimitus小提琴;
发布于 2012-09-16 17:44:47
您想要的是向对象添加属性。
但是您拥有的是一个字符串,因为localStorage只存储字符串。它似乎被存储为JSON (这是最明显的解决方案)。
首先,您需要还原对象:
var kamatObj = JSON.parse(localStorage["simpleCart_items"]);然后您可以添加一个属性:
kamatObj['toimituskulut'] = toimituskulut;然后您可以再次将其序列化为string,以便将其放回localStorage中:
localStorage["simpleCart_items"] = JSON.stringify(kamatObj);发布于 2012-09-16 18:09:51
Try This :
$("#posti").live('click', function() {
$(".maksu").slideDown(600);
$("#posti").attr("disabled" , "disabled");
$("#matkahuolto").removeAttr("disabled");
$("#posti").addClass( "selectedtoimitus" );
$("#matkahuolto").removeClass( "selectedtoimitus" );
$(".simpleCart_shipping").html(kamat);
var kamatObj = JSON.parse(localStorage["simpleCart_items"]);
var resultObject =JSON.parse((kamatObj).concat(JSON.parse(toimituskulut));
alert(resultobjcet);
localStorage["simpleCart_items"] = resultObject;
});https://stackoverflow.com/questions/12449091
复制相似问题