Javascript 我正在使用DOM生成一个下拉菜单,并用从API接收的数据填充选项
我希望能够循环使用每个动态生成的选项(请参见图片左侧),并添加下面的代码,以便我可以继续单击“添加到购物车”,并更新每个选项中保存到localStorage的编号。 目前,下面的代码只是不断地向'num'添加1。因此,当我更改下拉选项时,“optionQuantity”值将在最后一个值停止的位置继续。但是,我希望每个下拉选项都有自己的“num”,并且能够在选项之间来回切换,并不断添加到购物车中。我在末尾加了一张图片,这样你就能明白我的意思了。谢谢你的帮助Javascript 我正在使用DOM生成一个下拉菜单,并用从API接收的数据填充选项,javascript,loops,object,dom,local-storage,Javascript,Loops,Object,Dom,Local Storage,我希望能够循环使用每个动态生成的选项(请参见图片左侧),并添加下面的代码,以便我可以继续单击“添加到购物车”,并更新每个选项中保存到localStorage的编号。 目前,下面的代码只是不断地向'num'添加1。因此,当我更改下拉选项时,“optionQuantity”值将在最后一个值停止的位置继续。但是,我希望每个下拉选项都有自己的“num”,并且能够在选项之间来回切换,并不断添加到购物车中。我在末尾加了一张图片,这样你就能明白我的意思了。谢谢你的帮助 let num
let num = 0
const addToCart = document.getElementById('addToCart')
addToCart.addEventListener('click', function(option) {
option.preventDefault();
let cartObject = {
name: jsonResponse.name,
price: jsonResponse.price,
option: select.value,
optionQuantity: num
}
num++
localStorage.setItem(select.value, JSON.stringify(cartObject));
});
在下面,您可以看到左侧的选项选项(根据我返回的API,有不同数量的选项-它需要保持动态)。在右侧,您可以看到我是如何将对象转换为localStorage的,并且我希望能够根据我选择的选项继续添加到“optionQuantity”。
您应该从localStorage检索所选选项,并在内部操作“num”,而不共享var num的范围 大概是这样的:
//让num=0//删除此
const addToCart=document.getElementById('addToCart')
addToCart.addEventListener('click',函数(选项){
option.preventDefault();
让selectedItem=JSON.parse(localStorage.getItem(select.value));
//在这里声明num
设num=0;
如果(selectedItem){
num=selectedItem.num+1;
}
设cartObject={
名称:jsonResponse.name,
price:jsonResponse.price,
选项:select.value,
选项数量:选择editem.num+1;
}
setItem(select.value、JSON.stringify(cartObject));
});