因此,我尝试使用 JSON 更新 LocalStorage 中的元素,但我无法弄清楚我做错了什么。我想添加一个产品,并在再次添加相同产品时更新其数量。
第一次添加 X 产品时,我得到了一个元素的正确数量。添加另一个 X 后,数量将变为空。添加全新的产品 Y 将导致多个重复的 Y 元素且数量全部为空。
一定有一些逻辑错误,我似乎无法弄清楚。我怀疑 addToCart 函数出了问题。由于我是 JavaScript 和 JQuery 的新手,因此非常感谢任何帮助。谢谢。
$(document).ready(function() {
// caching
let $table = $(".shoe-table");
fetch("shoes.json")
.then(resp => resp.json())
.then(data => {
let shoes = data.shoes;
let rows = [1, 2, 3];
let shoeCard = "";
let products = JSON.parse(localStorage.products || "[]");
console.log(products);
function addToCart(cBtn) {
let clickedButton = $(cBtn);
let buttonID = clickedButton.attr("id");
let thisInput = $("#" + clickedButton.attr("id") + ".input-form").children("input");
let newShoe = {
id: buttonID,
image: shoes[buttonID].image,
name: shoes[buttonID].name,
price: shoes[buttonID].price,
quantity: parseInt(thisInput.val())
};
if (products.length != 0) {
products.forEach(shoe => {
if (shoe.name == newShoe.name) {
shoe.quantity += newShoe.quantity;
localStorage.setItem("products", JSON.stringify(products));
console.log(products);
} else {
products.push(newShoe);
localStorage.setItem("products", JSON.stringify(products));
}
});
} else {
products.push(newShoe);
localStorage.setItem("products", JSON.stringify(products));
}
}
翻翻过去那场雪
catspeake
相关分类