大家好我有一个简单的问题,我不是最好的JavaScript,但我想知道如何更新总数。我有按钮,我可以添加项目到购物车,并且更新很好,所以我使用相同的方法尝试更新总价格,但它只工作一次,然后它不会再添加。
所以当我第一次添加商品时,购物车更新+1,价格变为565
我第二次更新购物车是+2,这是完美的,但价格应保持在565,应该是1130.
对此事的任何帮助都会很棒
HTML:
<a class="shopping-cart" href="#"><i class="fa fa-shopping-cart"></i> <span class="cart-badge">0</span></a>
<p class="cartPrice">0.00 kr</p><input id="search-submit" type="submit">
Javascript:
var currentItems = 0;
var cartPrice = 565.00;
$(document).ready(function(){
$(".add-to-cart").click(function(){
currentItems++;
cartPrice + cartPrice;
$(".cart-badge").text(currentItems);
$(".cartPrice").text(cartPrice);
});
});
因此,您可以完美地看到数量更新,但总价格仅适用一次
再次感谢
编辑:
我刚试过cartPrice += cartPrice
;但它每次都加倍
答案 0 :(得分:2)
您的代码显而易见的问题是:
cartPrice + cartPrice;
由于您没有分配结果,因此无法执行任何操作。您必须执行以下任一操作:
cartPrice += cartPrice;
cartPrice = cartPrice + cartPrice;
但是,这会导致问题,因为每次最终会使价格翻倍。
解决方案是您不应该更改cartPrice
,否则您无法知道每个项目的成本以供后续计算。
而是创建一个局部变量并根据项目数*项目成本计算它。像这样:
var currentItems = 0;
var cartPrice = 565.00;
$(document).ready(function(){
$(".add-to-cart").click(function(){
currentItems++;
var totalPrice = currentItems * cartPrice;
$(".cart-badge").text(currentItems);
$(".cartPrice").text(totalPrice);
});
});
答案 1 :(得分:0)
原语是不可改变的。你必须继续压倒新的价值观。
cartPrice + cartPrice;
这在两个方面是错误的。它不会更新,因为你没有重新分配,然后它保持双倍的购物车价格。
应该是
cartPrice = currentItems * cartPrice;
答案 2 :(得分:0)
实际上当按 .add-to-cart 时,它会调用并在 cartPrice 中进行增量,但在第二次之后它会重新初始化相同的内容为什么它不会第二次增加。
第一次var currentItems = 0;
var cartPrice = 565.00;
var i = 0;
(文档)$。就绪(函数(){
$(".add-to-cart").click(function(){ currentItems++; if(i == 1) { var Price = $(".cartPrice").text(); cartPrice=Number(Price) + 565 ; $(".cartPrice").text(cartPrice); $(".cart-badge").text(currentItems); } else { cartPrice + cartPrice; $(".cart-badge").text(currentItems); $(".cartPrice").text(cartPrice); i=1; } }); });
取你的默认值 然后 从
中获取价值$(&#34; .cartPrice&#34;)。text();
它起作用了。