代码之家  ›  专栏  ›  技术社区  ›  CairoCoder

如何计算每次向购物车添加新产品后的价格?

  •  0
  • CairoCoder  · 技术社区  · 11 年前

    比方说我有一辆手推车。

    我有价格和数量,一个用类“价格”表示价格的跨度,一个以类“数量”表示数量的跨度。

    所以它看起来是这样的:

    <div id="itemsWrapper">
         <div><span class="price">25</span><span class="qty">2</span></div>
         <div><span class="price">40</span><span class="qty">1</span></div>
         ......
    </div>
    

    我想在每次用户将产品添加到购物车后计算最终价格。

    以下是我尝试过的价格,但没有奏效:

    $("#itemsWrapper").on("change", "#tableItems", function(){
      var price= new Array();
      $(".price").each(function(index) {
          price.push ($(this).text());
      });
      console.log(price);
    });
    
    3 回复  |  直到 11 年前
        1
  •  0
  •   GiantEnemyCrab    11 年前

    我不确定这是否是您所需要的,但我已经为您尝试了一些代码

    var total_price = 0;
    $("#itemsWrapper div").each( function() {
        price = $(this).find(".price").html();
        quantity = $(this).find(".qty").html()
        total_price += price * quantity;
    });
    alert(total_price);
    

    http://jsfiddle.net/cTtyL/

    我可能可以在连接“添加项目”事件方面为您提供更多帮助,但我需要您提供更多关于如何绑定事件的信息。

        2
  •  0
  •   FloatingRock    11 年前

    我很想在启用FireBug的情况下在您的网站上疯狂购物;)

    您不应该使用Javascript在前端计算价格。每次添加项目时发送AJAX请求以刷新购物车。

        3
  •  0
  •   CairoCoder    11 年前

    终于,我得到了我想要的。

    我在更新HTML购物车后直接插入了这个:

    var rtp = new Array();
    var qty = new Array();
    
    $(".rtp").each(function() {
       rtp.push ($(this).text());
    });
    
    $(".qty").each(function() {
       qty.push ($(this).text());
    });