JavaScript 購物車自動計算價格

admin發表於2019-01-24

購物車可能有這樣的功能,點選按鈕實現商品數量的減少或者增加,並實時計算總的商品價格。

下面通過程式碼例項介紹一下如何實現此功能,當然下面的效果難登大雅之堂,希望能從中得到一些啟發或者相關的知識點,程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript"> 
$(function(){ 
  $(".add").click(function(){ 
    var t=$(this).parent().find('input[class*=text_box]'); 
    t.val(parseInt(t.val())+1) 
    setTotal(); 
  }) 
  $(".min").click(function(){ 
    var t=$(this).parent().find('input[class*=text_box]'); 
    t.val(parseInt(t.val())-1) 
    if(parseInt(t.val())<0){ 
      t.val(0); 
    } 
    setTotal(); 
  }) 
  function setTotal(){ 
    var s=0; 
    $("#tab td").each(function(){ 
      s+=parseInt($(this).find('input[class*=text_box]').val())
   *parseFloat($(this).find('span[class*=price]').text()); 
    }); 
    $("#total").html(s.toFixed(2)); 
  } 
  setTotal();
}) 
</script>
</head>
<body>
<table id="tab">
  <tr>
    <td>
      <span>單價:</span><span class="price">1.50</span>
      <input class="min" name="" type="button" value="-" />
      <input class="text_box" name="" type="text" value="1" />
      <input class="add" name="" type="button" value="+" /></td>
  </tr>
  <tr>
    <td>
      <span>單價:</span><span class="price">3.95</span>
      <input class="min" name="" type="button" value="-" />
      <input class="text_box" name="" type="text" value="1" />
      <input class="add" name="" type="button" value="+" /></td>
  </tr>
</table>
<p>總價:<label id="total"></label></p>
</body>
</html>

上面的程式碼實現了簡單的購物車功能,下面詳細介紹一下它的實現過程。

一.程式碼註釋:

(1).$(function(){}),當文件結構完全載入完畢再去執行函式中的程式碼。

(2).$(".add").click(function(){}),為加號按鈕註冊click事件處理函式。

(3).var t=$(this).parent().find('input[class*=text_box]'),獲取文字框,文字中顯示要購買商品的數目。

(4).t.val(parseInt(t.val())+1),點選一次商品數量加1。

(5).setTotal(),執行此函式可以計算出總的價格並且顯示。

(6).$(".min").click(function(){}),為減號按鈕註冊click事件處理函式。

(7).function setTotal(){},此函式可以計算出總價格並且顯示出來。

(8).var s=0,宣告一個變數,此變數用來儲存總價格。

(9).$("#tab td").each(function(){ 

  s+=parseInt($(this).find('input[class*=text_box]').val())*parseFloat($(this).find('span[class*=price]').text()); 

}); 

可以遍歷文字框並乘以單價,然後進行累加,最後計算出來的總價格。

二.相關閱讀:

(1).parent()參閱jQuery parent()方法一章節。

(2).find()參閱jQuery find()方法一章節。 

(3).[class*=text_box]參閱jQuery [attribute*=value]一章節。 

(4).parseInt()參閱JavaScript parseInt()一章節。

(5).toFixed()參閱JavaScript toFixed()一章節。

相關文章