用js寫的一段網上購物車的代碼,javascript購物車代碼

本文目錄一覽:

求一個JS代碼,就APP購物車的代碼,可以在html直接實現的

給樓主做了一個,JS實現商品計數的加和減,最少不能少於1,最多不大於99,代碼裡面有注釋,方面樓主查看和使用。

javascript+jsp實現在1.html把商品放購物車,在2.html顯示購物車內的信息.看問題補充

一般來說,購物車信息是放在資料庫的。不建議放在session。添加購物車就向資料庫添加一條數據,另外一個頁面刷新自然就可以獲取數據

JS代碼 做一個簡易的購物車 效果圖如下

樓主是想要點擊合計就是出數值還是什麼?如果說點擊合計就算出值的話如下

table width=”400″ border=”1″

    tr

     th rows=”5″簡易購物車/th

    /tr

    tr

     td商品名稱/td

     td數量(件)/td

     td單價(美元)/td

     td運費(美元)/td

     tdbutton onclick=”fun()”合計/button/td

    /tr

    tr

     tdinput type=”text” name=”goodsName” //td

     tdinput type=”text” name=”num” id=”num” //td

     tdinput type=”text” name=”price” id=”price” //td

     tdinput type=”text” name=”freight” id=”freight” //td

     tdinput type=”text” name=”total” id=”total” //td

    /tr

/table

script

function fun(){

var num = document.getElementById(“num”).value;

var price = document.getElementById(“price”).value;

        var freight = parseInt(document.getElementById(“freight”).value);

        var total = (price * num) + freight;

        document.getElementById(“total”).value = total;

}

/script

jquery 實現加入購物車功能

參考以下代碼:

注意需要導入jquery.js.

!DOCTYPE html  

html  

  head  

    title購物車—-jQuery/title  

    meta charset=”utf-8″ /  

    style type=”text/css”  

      h1 {  

        text-align:center;  

      }  

      table {  

        margin:0 auto;  

        width:60%;  

        border:2px solid #aaa;  

        border-collapse:collapse;  

      }  

      table th, table td {  

        border:2px solid #aaa;  

        padding:5px;  

      }  

      th {  

        background-color:#eee;  

      }  

    /style  

    script type=”text/javascript” src=”./js/jquery.js”/script  

    script type=”text/javascript”  

      function add_shoppingcart(btn){//將btn(dom)轉換為jQuery對象  

        //先獲取商品名字和單價還有庫存以備後面使用  

        var $tds = $(btn).parent().siblings();  

        //$tds.eq(0)是jQuery對象  $tds[0]是DOM對象  

        var name = $tds.eq(0).html();//string  

        var price = $tds.eq(1).html();//string  

        var stock = $tds.eq(3).html();//string  

          

        //查看庫存是否還有=0  

        if(stock = 0){  

          return;     

        }  

          

        //無論購物車中是否有該商品,庫存都要-1  

        $tds.eq(3).html(–stock);  

          

        //在添加之前確定該商品在購物車中是否存在,若存在,則數量+1,若不存在則創建行  

        var $trs = $(“#goodstr”);  

        for(var i=0;i$trs.length;i++){  

          var $gtds = $trs.eq(i).children();  

          var gName = $gtds.eq(0).html();  

          if(name == gName){//若存在  

            var num = parseInt($gtds.eq(2).children().eq(1).val());  

            $gtds.eq(2).children().eq(1).val(++num);//數量+1  

            //金額從新計算  

            $gtds.eq(3).html(price*num);  

            return;//後面代碼不再執行  

          }  

        }  

        //若不存在,創建後追加  

        var li =  

          “tr”+  

            “td”+name+”/td”+  

            “td”+price+”/td”+  

            “td align=’center'”+  

              “input type=’button’ value=’-‘ onclick=’decrease(this);’/ “+  

              “input type=’text’ size=’3′ readonly value=’1’/ “+  

              “input type=’button’ value=’+’ onclick=’increase(this);’/”+  

            “/td”+  

            “td”+price+”/td”+  

            “td align=’center'”+  

              “input type=’button’ value=’x’ onclick=’del(this);’/”+  

            “/td”+  

          “/tr”;  

        //追加到#goods後面  

        $(“#goods”).append($(li));  

          

        //總計功能  

        total();  

      }  

        

      //輔助方法–單擊購物車中的”+”  “-”  “x”按鈕是找到相關商品所在td,以jQuery對象返回  

      function findStock(btn){  

        var name = $(btn).parent().siblings().eq(0).html();//獲取商品名字  

        //注意table默認有行分組,若此處使用 $(“#table1tr:gt(0)”)則找不到任何tr  

        var $trs = $(“#table1tbodytr:gt(0)”);  

        for(var i=0;i$trs.length;i++){  

          var fName = $trs.eq(i).children().eq(0).html();  

          if(name == fName){//找到匹配的商品  

            return $trs.eq(i).children().eq(3);  

          }  

        }  

      }  

        

      //增加”+”功能  

      function increase(btn){  

        //獲取該商品庫存看是否=0  

        var $stock = findStock(btn);  

        var stock = $stock.html();  

        if(stock = 0){  

          return;  

        }  

        //庫存-1    

        $stock.html(–stock);  

        //購物車數據改變  

        var $td = $(btn).prev();  

        var num = parseInt($td.val());//number  

        //num此時為number類型(在計算時會自動轉換為number類型)  

        $td.val(++num);  

        //獲取單價,再加計算前要先轉換為number類型  

        var price = parseInt($(btn).parent().prev().html());  

        $(btn).parent().next().html(num*price);  

          

        //總計功能  

        total();  

      }  

        

      //減少”-“功能  

      function decrease(btn){  

        //該商品數量=1時候不能再減少  

        var num = parseInt($(btn).next().val());  

        if(num = 1){  

          return;     

        }  

        var $stock = findStock(btn);  

        //庫存+1  

        var stock = $stock.html();  

        $stock.html(++stock);  

        //商品數量-1  

        $(btn).next().val(–num);  

        //從新計算金額  

        var price = parseInt($(btn).parent().prev().html());  

        $(btn).parent().next().html(price*num);  

          

        //總計功能  

        total();  

      }  

        

      //”x”刪除按鈕功能  

      function del(btn){  

        //將商品數量歸還庫存  

        var $stock = findStock(btn);  

        var stock = parseInt($stock.html());  

        var num = parseInt($(btn).parent().prev().prev().children().eq(1).val());  

        $stock.html(num + stock);  

        //清空改行商品列表  

        $(btn).parent().parent().remove();  

          

        //總計功能  

        total();  

      }  

    //總計功能  

    function total(){  

      //獲取所有購物車中的trs  

      var $trs = $(“#goods tr”);  

      var amount = 0;  

      for(var i=0;i$trs.length;i++){  

        var money = parseInt($trs.eq(i).children().eq(3).html());  

        amount += money;  

      }  

      //寫入總計欄  

      $(“#total”).html(amount);  

    }  

    /script  

  /head  

  body  

    h1真划算/h1  

    table id=”table1″  

      tr  

        th商品/th  

        th單價(元)/th  

        th顏色/th  

        th庫存/th  

        th好評率/th  

        th操作/th  

      /tr     

      tr  

        td羅技M185滑鼠/td  

        td80/td  

        td黑色/td  

        td5/td  

        td98%/td  

        td align=”center”  

          input type=”button” value=”加入購物車” onclick=”add_shoppingcart(this);”/  

        /td  

      /tr  

      tr  

        td微軟X470鍵盤/td  

        td150/td  

        td黑色/td  

        td9028/td  

        td96%/td  

        td align=”center”  

          input type=”button” value=”加入購物車” onclick=”add_shoppingcart(this);”/  

        /td  

      /tr  

      tr  

        td洛克iphone6手機殼/td  

        td60/td  

        td透明/td  

        td672/td  

        td99%/td  

        td align=”center”  

          input type=”button” value=”加入購物車” onclick=”add_shoppingcart(this);”/  

        /td  

      /tr  

      tr  

        td藍牙耳機/td  

        td100/td  

        td藍色/td  

        td8937/td  

        td95%/td  

        td align=”center”  

          input type=”button” value=”加入購物車” onclick=”add_shoppingcart(this);”/  

        /td  

      /tr  

      tr  

        td金士頓U盤/td  

        td70/td  

        td紅色/td  

        td482/td  

        td100%/td  

        td align=”center”  

          input type=”button” value=”加入購物車” onclick=”add_shoppingcart(this);”/  

        /td  

      /tr  

    /table  

    

    h1購物車/h1  

    table  

      thead  

        tr  

          th商品/th  

          th單價(元)/th  

          th數量/th  

          th金額(元)/th  

          th刪除/th  

        /tr  

      /thead  

      tbody id=”goods”  

      /tbody  

      tfoot  

        tr  

          td colspan=”3″ align=”right”總計/td  

          td id=”total”/td  

          td/td  

        /tr  

      /tfoot  

    /table      

  /body  

/html

最終效果圖:

關於javaScript問題 購物車的實現

關於只有最後一個文本框能觸發checknum方法的問題:

其實這裡有個邏輯錯誤,主要是%=i%中的i是多少的問題。從你貼出來的代碼看,你是不是連JS代碼也循環輸出了吧,也就是有幾條購物信息,就會生成幾個checknum方法,在JS里,同函數名的方法如果多次定義,則只有最後一個定義的方法有效果,那最後一個checknum方法里的%=i%實際就只指代最後一個文本框了。結果就是只有最後一個文本框有效果。

其實樓主只需要循環輸出表格,JS代碼只用一個就行了,只要在文本框觸發JS動作時,把%i%作為參數傳進JS方法就行了,例如,你可以這麼寫:

td width=”58″ height=”30″input name=”num%=i%” size=”5″ type=”text” value=”%=goodsitem.number%” onBlur=”checknum(this.form,%=i%)”/td

把JS方法放到循環外面,這麼寫:

function checknum(myform,i){

var inp = myform[‘num’+i];

if(isNaN(inp.value) || inp.value.indexOf(‘.’)!=-1){

alert(“請不要輸入非法字元!”);inp.focus();return;}//判斷是否為數字值

if(inp.value%=leave%){alert(“請輸入小於現有庫存 (”+%=leave%+”) 的數量!”);inp.focus();return;}

if(inp.value==0){

alert(“請輸入大於1的整數!”);inp.focus();return;}

if(inp.value==””){

alert(“請輸入修改的數量!”);inp.focus();return;}

myform.submit();

}

關於數字修改後觸發checknum方法的問題:

樓主的checknum方法最後是要提交表單的,所以如果用鍵盤事件,那每一次輸入一個字元或刪除一個字元,都會觸發表單提交動作,這應該不是樓主要的結果。字元修改後觸發JS方法有專門的事件處理方法onchange。樓主可以吧onblur換成onchange試試。

原創文章,作者:ICHW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144284.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ICHW的頭像ICHW
上一篇 2024-10-24 15:28
下一篇 2024-10-24 15:28

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • 噹噹網上購書商城介紹與實現

    噹噹網上購書商城是一家成立於1999年的電商企業,致力於為消費者提供優質的圖書、音像、電子書、文具用品等商品和服務。作為一家以圖書銷售為主的電商平台,噹噹網通過其豐富的圖書資源和完…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29

發表回復

登錄後才能評論