使用javascript更改购物车中的购物车项目数量

使用javascript更改购物车中的购物车项目数量,javascript,Javascript,我正在用Django建立一个电子商务网站,我正在尝试使用纯JavaScript更改购物车中的商品数量 我已经能够使用查询选择器选择并单击增加和减少按钮,但是当我单击其中任何一个按钮时,只有购物车中的第一个项目更新。其余按钮不会增加与其关联的项目的数量 我该怎么办 这是JavaScript代码: var minusButton=document.getElementsByClassName(“btn minus1”) 对于(变量i=0;i

我正在用Django建立一个电子商务网站,我正在尝试使用纯JavaScript更改购物车中的商品数量

我已经能够使用查询选择器选择并单击增加和减少按钮,但是当我单击其中任何一个按钮时,只有购物车中的第一个项目更新。其余按钮不会增加与其关联的项目的数量

我该怎么办

这是JavaScript代码:

var minusButton=document.getElementsByClassName(“btn minus1”)
对于(变量i=0;i
这是HTML代码:


运货马车
{%include“topnav.html”%}
你的车
项目
价格
量
{items%%中的项的%s}
{{item.product.title}
英镑{项目.产品.价格}
-
+
去除
{%endfor%}
总计
英镑{order.get_cart_total}
{%csrf_令牌%}
{%include“footer.html”%}

我知道您的目的是通过“减数1”和“添加1”按钮将输入的价值购物车数量增加或减少1。但是,在脚本中,对于每个minus1按钮,当您使用document.getElementsByClassName时,您将获得所有购物车数量输入(提示:对于当前文档,读取具有该类名的所有元素)。要选择这些按钮旁边的框,需要在HTML结构中导航。请看下面的脚本:

let deductBtnArr = document.getElementsByClassName('minus1');
let addButtonArr = document.getElementsByClassName('add1');

for(let deductBtn of deductBtnArr){
    deductBtn.onclick = function(){
        let currentInputBox = deductBtn.nextElementSibling;
        currentInputBox.value =  currentInputBox.value - 1;
    }
}

for(let addButton of addButtonArr){
    addButton.onclick = () => {
        let currentInputBox = addButton.previousElementSibling;
        currentInputBox.value =  parseInt(currentInputBox.value) + 1;
    }
}
我使用了元素。和元素。告诉页面我希望元素在它们旁边,这两种情况下都是购物车数量输入框


当然,如果在按钮和输入框之间添加一个元素,或者将它们封装在另一个元素中,上述脚本将失败。周围还有其他可用的导航功能。请检查一下。

嘿!非常感谢你!我试过代码,它成功了!但是我有一个问题:为什么在第二个函数中使用“parseInt”方法?如果第一个函数中的当前值是整数,为什么第二个函数是字符串?这是javascript中+符号的行为。我必须添加它们,因为当我在我的终端上尝试时,它是作为字符串添加的,所以它显示的是111111而不是6。对于+符号,我记得参数的数据类型先于表达式的操作类型;由于元素。*value*始终是一个字符串,它将连接它,而不是将其视为算术运算。因此,需要解析。