Javascript 如何为购物车创建数量更改功能?
这是我申请的链接 在向购物车添加内容后,单击右上角的购物车时,您将被带到该购物车页面 这是我目前尝试的数量变化功能,但我被卡住了Javascript 如何为购物车创建数量更改功能?,javascript,html,Javascript,Html,这是我申请的链接 在向购物车添加内容后,单击右上角的购物车时,您将被带到该购物车页面 这是我目前尝试的数量变化功能,但我被卡住了 // quantity change function quantityChange() { if (document.querySelector("btn-plus")) { products.inCart = products.inCart + 1; } else if (document.querySelector("
// quantity change
function quantityChange() {
if (document.querySelector("btn-plus")) {
products.inCart = products.inCart + 1;
} else if (document.querySelector("btn-minus")) {
products.inCart = products.inCart - 1;
}
}
如果需要更多信息或代码,请告诉我。我认为问题在于您的代码中有
文档.getElementsByClassName('.btn plus')
,因此对于getElementsByClassName
您不需要“.”,但在查询选择器中需要“.”
至于使用事件侦听器更新数量,您需要执行以下操作:
我在您的span
中添加了一个id
属性“quantity”,该属性包含product.informat
。这一点很重要,因此我们可以获取对该span
元素的引用,以便更新其innerText
属性。
我添加了这样的代码,并验证它是否在我的机器上工作:
但是,您想在这里添加的代码会有点不同,因为通过Chrome DevTools,我无法访问您的products对象。
你会想要这样的
document.querySelector('.btn plus').addEventListener('click',()=>{
const quantityText=document.querySelector(“#quantity”);
quantityText.innerText=`${products.innerText++}`;
});
你可以这样做
步骤1:将displayCart
功能更改为:
函数displayCart(){
让cartItems=localStorage.getItem(“productsInCart”);
cartItems=JSON.parse(cartItems);
控制台日志(cartItems);
让cartContainer=document.querySelector(“.products”);
让cartCost=localStorage.getItem(“totalCost”);
if(cartItems和cartContainer){
cartContainer.innerHTML=“”;
Object.values(cartItems).map((产品)=>{
cartContainer.innerHTML+=`
${products.name}
$${products.price}
${products.incontat}
$${products.price*products.INVOT}
`;
});
cartContainer.innerHTML+=`
篮子总数:
$${cartCost}.00
`;
}
}
步骤2:将数量更改功能更改为:
函数数量更改(){
const plusBtnNew=document.querySelector(“.btn plus”);
const minusBtnNew=document.querySelector(“.btn减号”);
const curItems=document.querySelector(“.curItems”);
plusBtnNew.addEventListener(“单击”,()=>{
const total=Number(localStorage.getItem(“cartNumbers”);
localStorage.setItem(“cartNumbers”,总计+1);
curItems.textContent=总计+1;
});
minusBtnNew.addEventListener(“单击”,()=>{
const total=Number(localStorage.getItem(“cartNumbers”);
setItem(“CartNumber”,总计-1);
curItems.textContent=总计-1;
});
}
最终store.js
code:
const sizeBtn=document.querySelector(“.btn-group1”);
const showcase=document.querySelector(“.showcase”);
let carts=document.queryselectoral(“添加到购物车”);
让收藏夹=document.queryselectoral(“收藏夹”);
console.log(收藏夹);
让产品=[
{
名称:“拉链连帽运动衫”,
标签:
"https://connorlewis128.github.io/ShoppingPage/Dist/images/new%20product/black%20jacket/front.webp",
价格:50.0,
化身:0,
},
];
//添加到购物车
for(设i=0;i{
编号(产品[i]);
总成本(产品[i]);
});
}
函数onLoadCartNumber(){
让productNumbers=localStorage.getItem(“cartNumbers”);
if(产品编号){
document.querySelector(“span.navbarCart”).textContent=产品编号;
}
}
//添加到购物车的项目数
功能编号(产品){
让productNumbers=localStorage.getItem(“cartNumbers”);
productNumbers=parseInt(productNumbers);
if(产品编号){
setItem(“CartNumber”,ProductNumber+1);
document.querySelector(“span.navbarCart”).textContent=productnumber+1;
}否则{
localStorage.setItem(“cartNumbers”,1);
document.querySelector(“span.navbarCart”).textContent=1;
}
设置项目(产品);
}
//最爱
for(设i=0;i{
favItems(产品[i]);
总成本(产品[i]);
});
}
函数onLoadFavNumber(){
让favNumbers=localStorage.getItem(“favItems”);
if(favNumbers){
document.querySelector(“span.favoritesunt”).textContent=favNumbers;
}
}
//添加的收藏夹数
功能favItems(产品){
让favNumbers=localStorage.getItem(“favItems”);
favNumbers=parseInt(favNumbers);
if(favNumbers){
setItem(“favItems”,favNumbers+1);
console.log(favNumbers);
document.querySelector(“span.favoritesunt”).textContent=favNumbers+1;
}否则{
setItem(“favItems”,1);
document.querySelector(“span.favoritesunt”).textContent=1;
}
设置项目(产品);
}
功能集合项(产品){
让cartItems=localStorage.getItem(“productsInCart”);
cartItems=JSON.parse(cartItems);
如果(cartItems!=null){
if(cartItems[products.Tag]==未定义){
cartItems={
…手推车项目,
[产品.标签]:产品,
};
}
cartItems[products.Tag].Informat+=1;
}否则{
products.t=1;
cartItems={
[产品.标签]:产品,
};
}
setItem(“productsInCart”,JSON.stringify(cartItems));
}
功能总成本(产品){
让cartCost=localStorage.getItem(“totalCost”);
如果(成本!=null){
cartCost=parseFloat(cartCost);
localStorage.setItem(“totalCost”,cartCost+products.price);
}否则{
localStorage.setItem(“总成本”