ylbtech-JavaScript-util: shoppingCart.js

购物车脚本

1.A,JS-效果图返回顶部
 
1.B,JS-Source Code(源代码)返回顶部
1.B.1,m.yintai
/*
*/
function Product() {
var itemcode; //商品编码
var count; //数量
var type; //类型
var paramid; //参数
}
/*
添加商品
*/
function addShoppingCartProduct(itemCode, count, type, paramid) {
if (itemCode == "" || itemCode == null) {
alert("商品编号不能为空!");
return false;
}
var productList = getShoppingCartProductList();
var found = false;
var i = 0;
while (i < productList.length) {
var productInfo = productList[i];
if (productInfo.itemcode == itemCode) {
productInfo.count = productInfo.count + count;
productInfo.type = type;
productInfo.paramid = paramid;
found = true;
break;
}
i++;
}
if (!found) {
product = new Object();
product.itemcode = itemCode;
product.count = count;
product.type = type;
product.paramid = paramid;
productList.push(product);
}
localStorage.shoppingCartProductList = JSON.stringify(productList);
return true;
}
/*
取得商品
*/
function getShoppingCartProduct(itemCode) {
var productList = getShoppingCartProductList();
var i = 0;
while (i < productList.length) {
var productInfo = productList[i];
if (productInfo.itemcode == itemCode) {
return productInfo;
}
i++;
}
return null;
}
/*
取得商品列表
*/
function getShoppingCartProductList() {
if (localStorage.shoppingCartProductList == undefined || localStorage.shoppingCartProductList == "undefined" || localStorage.shoppingCartProductList == "") {
var newProductList = new Array();
localStorage.shoppingCartProductList = JSON.stringify(newProductList);
}
var productList = JSON.parse(localStorage.shoppingCartProductList);
return productList;
}
/*
清空购物车
*/
function clearShoppingCart() {
var productList = new Array();
localStorage.shoppingCartProductList = JSON.stringify(productList);
}
/*
删除商品
*/
function removeShoppingCartProduct(itemCode) {
var productList = getShoppingCartProductList();
var i = 0;
while (i < productList.length) {
var productInfo = productList[i];
if (productInfo.itemcode == itemCode) {
productList.splice(i, 1);
break;
}
i++;
}
localStorage.shoppingCartProductList = JSON.stringify(productList);
}
/*
修改商品数量
*/
function updateShoppingCartProduct(itemCode, count) {
var productList = getShoppingCartProductList();
var i = 0;
while (i < productList.length) {
var productInfo = productList[i];
if (productInfo.itemcode == itemCode) {
productInfo.count = count;
break;
}
i++;
}
localStorage.shoppingCartProductList = JSON.stringify(productList);
}

1.B.2,

1.C,JS-Relevent References(相关引用)返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

shoppingCart.js的更多相关文章

  1. javascript项目实战之原生js模拟淘宝购物车

    通过JavaScript实现类似与淘宝的购物车效果,包括商品的单选.全选.删除.修改数量.价格计算.数目计算.预览等功能的实现.实现的效果图: 相应的代码: shoppingCart.html < ...

  2. [转]一步一步asp.net_购物车订单与支付宝

    本文转自:http://www.cnblogs.com/mysweet/archive/2012/05/19/2508534.html 最近这几天很忙,一边忙着准备一堆课程设计(8门专业课.....伤 ...

  3. 【京东账户】——Mysql/PHP/Ajax爬坑之用户登录

    一.引言 实现京东的账户项目,功能模块之一,用户登录.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.依据功能创建库.表.记录 创建库:jd 创建表:登录表 添加三条记录 CREATE ...

  4. 安卓sdk webview获取淘宝个人信息100项,源码。

    1.贴出主要代码.这个不是python,python只涉及了服务端对信息提取结果的接受.主体是java  + android + js.由于淘宝各模块都是二级子域名,不能只在一个页面完成所有请求,aj ...

  5. Orchard模块开发全接触7:订单与支付之Event Bus

    在这部分,我们要完成的工作有: 1:将购物车内的商品变成真正的订单: 2:理解 父子及一对多关系: 3:写一个针对 Event Bus 的扩展点: 4:实现一个针对该扩展点的模拟的 支付服务: 一:创 ...

  6. Orchard模块开发全接触5:深度改造前台第二部分

    在这一部分,我们继续完善我们的购物车,我们要做以下一些事情: 1:完成 shoppingcart.cshtml: 2:让用户可以更新数量及从购物车删除商品: 3:创建一个 widget,在上面可以看到 ...

  7. AngularJS 的常用特性(三)

    6.表达式  在模板中使用表达式是为了以充分的灵活性在模板.业务逻辑和数据之间建立联系,同时又能避免让业务逻辑渗透到模板中. <div ng-controller="SomeContr ...

  8. Demo—cookie电商购物车

    说明:cookie的操作须有域名,简单点说就是需要用发布的方式去访问,查看cookie信息请用开发者模式进入application栏 1.页面布局(结构)(根目录) 商品列表 <!doctype ...

  9. mpvue开发美团外卖点餐小程序

    mpvue-meituan mpvue-meituan 是一款使用mpvue开发的实战小程序项目,完全仿制美团官方外卖点餐小程序开发而成,项目的框架结构完全按照企业开发架构搭建而成.结合了原生小程序的 ...

随机推荐

  1. PHP文件开头session_start()

    session_start(); 告诉服务器使用session.一般来说,php是不会主动使用session的. 不过可以设置php.ini中的session.auto_start=1来自动对每个请求 ...

  2. Codeforces Round #386 (Div. 2) 746F(set的运用)

    题目大意 给出一个歌单(有n首歌),每个歌都有愉悦值和时间,你可以选择从第x首歌开始听(也就是选择连续的一段),并且你可以选择w首歌让它的时间减半,限制时间为k,求最大的愉悦值 首先我们需要贪心一下, ...

  3. BZOJ3876 [Ahoi2014&Jsoi2014]支线剧情 【有上下界费用流】

    题目 [故事背景] 宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩怨情仇的剧情.这些游戏往往 都有很多的支线剧情,现在JYY想花费最少 ...

  4. Java正则表达式--Matcher.group函数的用法

    原来,group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西. 最近学习正则表达式,发现Java中的一些术语与其 ...

  5. Linux忘记Mysql原来root的密码

    Linux忘记Mysql原来root的密码 1.首先需要有linux操作系统root的权限 2.ps aux | grep mysql (或者 systemctl status mysql) 发现my ...

  6. 【TEST】NOI-Linux可用 gedit c++精简配置 附Emacs日常配置

    这里是backup的测试随笔,用于测试 CSS / Markdown 效果. 同时也是是本菜鸡考场上一般使用的Gedit配置. 只有6行,挺短的.应该算好记吧. 使用之前记得勾选首选项里的外部工具. ...

  7. 洛谷 P2916 [USACO08NOV]为母牛欢呼Cheering up the C…

    题目描述 Farmer John has grown so lazy that he no longer wants to continue maintaining the cow paths tha ...

  8. Linux有名信号量的创建(sem_open中name参数构造)【转】

    转自:http://blog.csdn.net/gfeng168/article/details/40740865 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.sem_open函数nam ...

  9. Linux内核情景分析的alloc_pages

    NUMA结构的alloc_pages ==================== mm/numa.c 43 43 ==================== 43 #ifdef CONFIG_DISCON ...

  10. linux内核分析之进程地址空间【转】

    转自:http://blog.csdn.net/bullbat/article/details/7106094 版权声明:本文为博主原创文章,未经博主允许不得转载. 本文主要介绍linux内核中进程地 ...