【发布时间】:2019-10-27 01:10:05
【问题描述】:
如何获取 item.title、item.price、item.imageScr 值并将它们设置为我可以在 displayCart() 中使用的变量
我正在用这三个值和关键项保存一组信息。 但我想在我的购物车中显示该信息。 而且我不知道如何显示该信息并将其传递给显示购物车。
var product = [
{
title: title,
price: price,
image: imageSrc
}
];
var pods = JSON.parse(localStorage.getItem("item")) || [];
pods.push(product);
localStorage.setItem("item", JSON.stringify(pods));
//displayCart(title, price, imageSrc)
saveCart();
function loadCart() {
for (var i = 0; i < localStorage.length; i++) {
displayCart();
}
}
function displayCart() {
//var item = JSON.parse(localStorage.getItem("item"))[0]
var cartRow = document.createElement("div");
cartRow.classList.add("cart-row");
var cartItems = document.getElementsByClassName("cart-items")[0];
var cartRowContents = `
<div class="cart-row">
<div class="cart-column cart-item" style="padding-top: 1%">
<img class="image" style="width: 25%;" src="${imageSrc}" alt="" />
<h2 style="padding-left: 5%">${title}</h2>
</div>
<div class="cart-column cart-price" style="padding-top: 1%">
<h2 class="price">${price}</h2>
</div>
<form class="cart-column cart-quantity">
<input
class="quantity"
type="number"
id="number"
value="1"
style="width: 15%; margin-left: auto; margin-right: 60%"
/>
</form>
<span style="margin-top: auto; margin-bottom: auto;">
<button class="btn btn-primary shop-item-button " type="button">
Remove
</button>
</span>
</div>`;
cartRow.innerHTML = cartRowContents;
cartItems.append(cartRow);
cartRow
.getElementsByClassName("btn-primary")[0]
.addEventListener("click", RemoveCartItem);
saveCart();
}
我假设我可以获取 item.value 并将其用作显示价格、标题和图像的参考,但这不起作用。
【问题讨论】:
-
将相关的东西作为参数传递给函数。所以
displayCart()应该将产品对象作为参数并使用它。loadCart()应该在其上方包含localStorage.getItem()部分,以便它可以将正确的对象传递给displayCart()。因此,您应该更改代码以首先将所有内容从本地提取回产品数组。然后循环 products 数组而不是 localStorage。所以你评论了displayCart(title, price, imageSrc)实际上是正确的想法。 -
PS:var product 是一个数组。所以如果你将一个数组写入本地,你会得到一个数组。所以标题实际上是在
pods[0].title里面。 -
@Shilly 等等你能给我一个代码示例吗?我想我明白你的意思。但是,如果我 displayCart 接受产品对象,它怎么能接受标题、价格和 imageScr?和你的PS。这就说得通了!所以我应该可以
pods[0].title = title来获得产品的标题吗?
标签: javascript html arrays local-storage