JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)

购物车点击可以减少或者添加商品并自动计算价格:

购物车中可能有这样的功能,那就是点击按钮可以实现商品数量的减少或者增加,并且能够实时的计算出总的商品价格,下面就通过代码实例介绍一下如何实现此功能,当然下面的这个模拟实现的购物车难登大雅之堂,但是可以从中得到一些启发或者相关的知识点,代码如下:

复制代码 代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<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. 从Google Code加载jQuery Google Code上已经托管了多种JavaScript类库,从Google Code上加载jQuery比直接从你的服务器加载更有优势。它 节省了你服务器上的带宽 ,能够很快的从Google的内容分布网络(CDN)上加载JS类库。更重要的是,如果用户访问那些发布在Google Code上的站点后它会被 缓存下来。 这样做很有意义。有多少站点使用了没有被缓存的相同jQuery副本,而这些很容易做到,引入: script type="text/javascri
使用情形如下: 页面a.aspx中点击按钮弹出模拟层,在这个层中有一个输入文本框“监督人”处调用hintbox来产生即时查询功能。 直接调用产生了如下情形: 于是找到jquery.hintbox-1.3.js这个文件,发现其中出现这么一行: 复制代码 代码如下: $("#windown-content").ajaxStart(function(){ $(this).html("img src='"+templateSrc+"/images/loading.gif' class='loading' /");
今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码: 一、使用JS获取客户端IP的几个方法 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000)。 获取客户端IP代码: 复制代码 代码如下: HTML HEAD TITLEGetL

javascript event 事件解析 - 2015-05-01 14:05:29

event对象只在事件发生的过程中才有效。 event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。 HTML HEADTITLECancels Links/TITLE SCRIPT LANGUAGE="JScript" function cancelLink() { if (window.event.sr
抄些常用工具方便查找 ----------字符串 Ext.util.Format.capitalize(string str);//将首字母变大写 Ext.util.Format.ellipsis(string value, Number length);//截取指定length字符,将自动在尾处添加省略号'...' Ext.util.Format.htmlEncode(string value); //将文本编码 lowercase(string value);//变小写 stripScripts(Mix

下拉框select的绑定示例 - 2015-05-01 14:05:29

根据文本绑定text var locationCity = productViewObj.Product.LocationCity; var countCity = $("#slCity option").length; for (var i = 0; i countCity; i++) { if ($("#slCity").get(0).options[i].text == locationCity) { $("#slCity").get(0).options[i].selected = true; b

Jquery异步请求数据实例代码 - 2015-05-01 14:05:29

一、Jquery向aspx页面请求数据 前台页面JS代码: 复制代码 代码如下: $("#Button1").bind("click", function () { $.ajax({ type: "post", url: "default.aspx", data: "name=" + $("#Text1").val(), success: function (result) { alert(result.msg); } }); }); 复制代码 代码如下: input id="Text1" type="te
我加了css的限制: 复制代码 代码如下: div img {}{ max-width:600px; width:600px; width:expression(document.body.clientWidth600?"600px":"auto"); overflow:hidden; } ◎ max-width:600px; 在IE7、FF等其他非IE浏览器下最大宽度为600px。但在IE6中无效。 ◎ width:600px; 在所有浏览器中图片的大小为600px; ◎ 当图片大小大于600px,自动缩
最近项目网页需要实时显示服务器时间,如果每秒通过ajax加载服务器时间的话,就会产生大量的请求。 于是设计了“javscript自运行时钟” 和 "ajax加载服务器时间" 相结合的形式来显示服务器时间。“javscript自运行时钟” 以某初始时间为起点自动运行,"ajax加载服务器时间" 每60s将服务器的时间给“javscript自运行时钟” 更新。 javscript自运行时钟: 复制代码 代码如下: /*! * File: sc_clock.js * Version: 1.0.0 * Author
弄了个很简单的例子判断IE浏览器版本是否过低 例子结构如下,其实一个页面加引入jquery就可以了,顺便弄了个标准结构(注意在IE6和IE7版本较低情况下下才看到它的提示效果) 复制代码 代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/x