用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/n/144284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ICHWICHW
上一篇 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

发表回复

登录后才能评论