gpt4 book ai didi

javascript - 如何检查 session 存储中是否存在项目?

转载 作者:行者123 更新时间:2023-11-30 18:06:58 26 4
gpt4 key购买 nike

我正在创建一个网页,用户可以在其中添加一个项目到 dropbox 购买点击一个按钮。 sessionstorage 存储项目的 partnum 和数量。保管箱将显示所选项目的详细信息(数量为 1)。如果选择了相同的项目,我如何将数量更新为 2?

        $("#btnBuy0").click(function()
{
$("#dropbox").append('<span><img class = "thumb" src="../images/21_metoyou.jpg" />' + teddy[0].desc + ", Price £"
+ teddy[0].price + ", Quantity: " + quantity + "</span><br/>");
if (Modernizr.sessionstorage)
{ // check if the browser supports sessionStorage
myids.push(teddy[0].partnum + quantity); // add the current username to the myids array
sessionStorage["ids"]=JSON.stringify(myids); // convert it to a string and put into sessionStorage
}
else
{
// use cookies instead of sessionStorage
}
for (var item =0; item<sessionStroage.length; item++)
{
var key = sessionStorage.key(teddy[0].partum);
if (teddy[0].partnum == teddy[item].partnum)
{
var q = sesstionStorage.getItem(quantity, quantity++);
}

最佳答案

我建议您使用不同的数据结构来存储用户的购物车。您可以使用 Associative Array 而不是使用数组 (myids) (通过使用 JavaScript 对象)将 partnum 映射到一个数量,例如:

// Basket is initially empty.
basket = {};

function saveOrder(teddy, quantity) {
var partnum = teddy[0].partnum;

// Create a mapping between the partnum and the quantity
basket[partnum] = quantity;

// Write the basket to sessionStorage.
sessionStorage.basket = JSON.stringify(basket);
}

使用映射将允许您创建辅助方法来从 SessionStorage 读取和写入篮子对象,例如:

function fetchBasketFromSession() {
return JSON.parse(sessionStorage.basket);
}

function writeBasketToSession(basket) {
sessionStorage.basket = JSON.stringify(basket)
}

function getPartNumOf(teddy) {
return teddy[0].partnum;
}

function getQuantityInSessionBasketOf(teddy) {
// Fetch the basket from sessionStorage
var sessionBasket = fetchBasketFromSession(),
partnum = getPartNumOf(teddy);

// Return the quantity mapped to the partnum in the basket, or 0 if nothing
// is mapped.
return sessionBasket[partnum] || 0;
}


// Combining these functions would allow you to update the users basket.
function addToBasket(teddy, quantityToAdd) {
var sessionBasket = fetchBasketFromSession(),
currentQuantity = getQuantityInSessionBasketOf(teddy),
partnum = getPartNumOf(teddy);

// Update the quantity for this partnum and write it back out.
sessionBasket[partnum] = currentQuantity + quantityToAdd;
writeBasketToSession(sessionBasket);
}

希望对您有所帮助:)

关于javascript - 如何检查 session 存储中是否存在项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15588128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com