ajax和js编写购物车,基于JQuery实现的类似购物商城的购物车

该博客介绍了一个使用JavaScript实现的动态购物车功能,包括商品的添加、删除和数量增减。商品信息以JSON格式存储,购物车能够根据用户操作动态计算总价。建议使用IE浏览器运行,支持商品数量手动输入,当商品数量为0时会自动从购物车移除。代码中包含了HTML结构、JS逻辑以及商品数据。
摘要由CSDN通过智能技术生成

商品信息使用JSON数据来模拟

同一个产品点击多次,不会重复添加,而是在已有的基础上数量+1,

商品数量也可以手动输入,当输入0时,该商品将自动从购物车删除(点击减号到小于1时,也会提示是否从购物车删除商品信息)

每个产品的价格和总价都会根据添加和删除的操作来动态计算

附下载链接:/201112/yuanma/jquery_gouwuche.rar

基本的功能都已经实现, 建议使用IE浏览器运行,其他浏览器没有测试

1f5a031dd3e901f8b462dc721cccf678.gif

HTML代码:

无标题文档

商品列表

编号:000001

名称:aa

价格:2.5

描述:aaaaa

编号:000001

名称:aa

价格:2.5

描述:aaaaa

编号:000001

名称:aa

价格:2.5

描述:aaaaa

编号:000001

名称:aa

价格:2.5

描述:aaaaa

购物车

序号编号名称描述数量单价总价删除
1000001aaaaaaa00
总价0.0

JS 代码

/*

@@

@@

@@

*/

var product=[

{prodId:"000001",prodName:"aa",price:2.5,description:"aaaaa"},

{prodId:"000002",prodName:"bb",price:2.4,description:"bbbbb"},

{prodId:"000003",prodName:"cc",price:2.3,description:"ccccc"},

{prodId:"000004",prodName:"dd",price:2.2,description:"ddddd"},

{prodId:"000005",prodName:"ee",price:2.1,description:"eeeee"},

{prodId:"000006",prodName:"ff",price:2.0,description:"fffff"},

{prodId:"000007",prodName:"gg",price:1.9,description:"ggggg"},

{prodId:"000008",prodName:"hh",price:1.8,description:"hhhhh"},

{prodId:"000009",prodName:"ii",price:1.7,description:"iiiii"}

];

var j=0,i=-1,k=-1,len=$("#trMaster td").size();//数据和模板的td 都可以自定义,格式正确即可

$.each(product,function(index,prod){

i++;

k++;

if(i%len==0){

j++;

CloneTR(j);//根据模板来克隆行

}

if(k==len)

k=0;

setTD(j,k,prod.prodId,prod.prodName,prod.price,prod.description);//给克隆行的td 赋值

});

//根据模板来克隆行

function CloneTR(id){

$("#trMaster").clone(true).css("display","block").attr("id","tr"+id).appendTo("#tblProduct");

$("#tr"+id+" td span").empty();

}

//给克隆行的td 赋值

function setTD(trId,index,prodId,prodName,price,description){

var tr=$("#tr"+trId);

$(tr).find("td:eq("+index+")").find("span:eq(0)").html(prodId);

$(tr).find("td:eq("+index+")").find("span:eq(1)").html(prodName);

$(tr).find("td:eq("+index+")").find("span:eq(2)").html(price);

$(tr).find("td:eq("+index+")").find("span:eq(3)").html(description);

}

var tempId="";

var num=0;

//点击buy

$("input[name='btnBuy']").click(function(){

var elem=$(this).parent().parent();//获取点击的button 的td

var prodId=$(elem).find("span:eq(0)").html();

var prodName=$(elem).find("span:eq(1)").html();

var price=$(elem).find("span:eq(2)").html();

var description=$(elem).find("span:eq(3)").html();

if(prodId==""||prodId==null||prodId==undefined){

alert("请点击其他产品");

}else{

if(tempId.indexOf(prodId)!=-1){

if(confirm('已存在,确定数量+1 吗?')){

$("#tblOrder tr:gt(1)").each(function(){

if($(this).find("td:eq(1)").html()==prodId){

var num=$(this).find("td:eq(4)").find("input[name='txtNum']").attr("value");

$(this).find("td:eq(4)").find("input[name='txtNum']").attr("value",+num+1);//相当于parseInt(num)+1;

}

});

}

}else{

num++;

CloneOrder(num,prodId,prodName,price,description);

}

tempId+=prodId+",";

$("#tdTotal").html(""+GetTotalPrice().toFixed(2)+"");

}

});

//根据订单模板来clone 订单

function CloneOrder(id,prodId,prodName,price,description){

$("#orderMarter").clone(true).css("display","block").attr("id","tro"+id).appendTo("#tblOrder");

var tr=$("#tro"+id);

$(tr).find("td:eq(0)").html(num);

$(tr).find("td:eq(1)").html(prodId);

$(tr).find("td:eq(2)").html(prodName);

$(tr).find("td:eq(3)").html(description);

$(tr).find("td:eq(4)").find("input[name='txtNum']").attr("value","1");

$(tr).find("td:eq(5)").html(price);

$(tr).find("td:eq(6)").html(""+price+"");

}

//获取总共价格

function GetTotalPrice(){

var totalNum=0;

$("#tblOrder tr:gt(1)").each(function(){

var value=parseFloat($(this).find("td:eq(6)").text());

totalNum+=value;

});

return totalNum;

}

$(function(){

$("#tblOrder input[name='txtNum']").bind("propertychange",function(){

var value=$(this).val();

var tr=$(this).parent().parent();

if(value==0){

if(confirm('确定要删除该商品吗?')){

$(tr).remove();

}

}else{

var price=$(tr).find("td:eq(5)").html();

var total=value*price;

$(tr).find("td:eq(6)").html(""+total.toFixed(2)+"");

$("#tdTotal").html(""+GetTotalPrice().toFixed(2)+"");

}

});

//加1

$("#tblOrder input[name='btnAdd']").click(function(){

var txtBox=$(this).parent().parent().find("td:eq(4)").find("input[name='txtNum']");

var value=$(txtBox).attr("value");

value=+value+1;

$(txtBox).attr("value",value)

});

//减1

$("#tblOrder input[name='btnCut']").click(function(){

var txtBox=$(this).parent().parent().find("td:eq(4)").find("input[name='txtNum']");

var tr=$(this).parent().parent();

var value=$(txtBox).attr("value");

if(value>1){

value=+value-1;

$(txtBox).attr("value",value)

}else{

if(confirm('确定要删除该商品吗?')){

$(tr).remove();

$("#tdTotal").html(""+GetTotalPrice().toFixed(2)+"");

}

}

});

//删除btnRemove

$("#tblOrder input[name='btnRemove']").click(function(){

var tr=$(this).parent().parent();

if(confirm('确定要删除该商品吗?')){

$(tr).remove();

$("#tdTotal").html(""+GetTotalPrice().toFixed(2)+"");

}

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值