问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助js购物车代码!要能点击 添加按钮 就直接在购物车显示出来!可以修改...

发布网友 发布时间:2022-04-26 21:26

我来回答

2个回答

懂视网 时间:2022-05-16 13:01

[javascript]
/**********************************购物车类***************************************/

var product=function(productArr){/*商品类基类productArr=>array;productArr['ID'],productArr['name'],productArr['pic'],=productArr['lvs'],productArr['width'],productArr['thickness '],productArr['length'],productArr['open'],productArr['capacity']*/
var _ID=productArr['ID'],_name=productArr['name'],_pic=productArr['pic'],_price=productArr['price'],_weight=productArr['weight'],_originalPrice=productArr['originalPrice'],_this=this;
this.num=productArr['num'];
this.getName=function(){
return _name;
}
this.getID=function(){
return _ID;
}
this.getPrice=function(){
return _price;
}
this.getWeight=function(){
return _weight;
}
this.getPic=function(){
return _pic;
}
this.getOriginalprice=function(){
return _originalPrice;
}
this.setNum=function(newNum){
_this.num=newNum;
}
this.getTotal=function(){
var total=_this.num*_this.getPrice();
return total;
}

}

var makeProductObj=function(gID,pID,num){//制造product对象函数,返回制造的product对象,gID=>数据组ID,pID=>商品ID
/*********制造代码*********/
var pData=[];
(function(gID,pID){
$.ajax({
url:'/module/data/default.php?action=dataDetail&groupID='+gID+'&ID='+pID+'&r='+newDate(),
type:'post',
dataType:'xml',
async:false,
/**工厂方法***/
success:function(dataXML){
pData.price=$(dataXML).children('root').children('extend19').text();
pData.originalPrice=$(dataXML).children('root').children('extend9').text();
pData.weight=$(dataXML).children('root').children('extend21').text();
pData.name=$(dataXML).children('root').children('name').text();
pData.pic=$(dataXML).children('root').children('extend17').text();
}
});
})(gID,pID);
return new product({
num:num,
name:pData.name,
ID:pID,
price:pData.price,
pic:pData.pic,
weight:pData.weight,
originalPrice:pData.originalPrice,
});
}
var cartCookie=$.cookies.get('productItem');//cookie的全局变量=>'商品ID|数量,商品ID|数量'
//alert(mockCookie);

var productCollection=function(){//商品搜集类
var products=[];
var hasOne=function(productObj){
var isOne=0;
for(var i=0;i<products.length;i++){
if(products[i].getID()==productObj.getID()){
isOne=1;
break;
}
}
return isOne;
}
var initProduct
/********初始哈products数组代码********/
//alert(mockCookie);
if(cartCookie){
initProduct=cartCookie.split(',');
for(var i=0;i<initProduct.length;i++){
var _productTemp=initProduct[i].split('|');
var _proObj=new makeProductObj(4,parseInt(_productTemp[0]),parseInt(_productTemp[1]));
if(hasOne(_proObj)!=1){
products.push(_proObj);
}
}
}
/*******初始哈products数组代码*********/

this.addProduct=function(productObj){//添加商品
if(hasOne(productObj)!=1){
products.push(productObj);
}
}
this.delProduct=function(productObj){//删除商品
var _tempProducts=[];
for(var i=0;i<products.length;i++){
if(products[i].getID()!==productObj.getID()){
//console.log(products[i].getID());
_tempProducts.push(products[i]);
}
}
products=_tempProducts;
}//del
this.setNumByPid=function(pID,newNum){//设置商品数量
for(var k=0;k<products.length;k++){
if(products[k].getID()==pID){
products[k].setNum(newNum);
break;
}
}
}
this.getProductById=function(pID){//pID为商品的ID,获得商品对象
for(var j=0;j<products.length;j++){
if(products[j].getID()==pID){
return products[j];
break;
}
}
return false;
}
this.getProducts=function(){//获得商品对象数组
return products;
}
this.getNeedMoney=function(){//获得所有商品的总价钱
var _needMoney=0;
for(var k=0;k<products.length;k++){
_needMoney+=products[k].getTotal();
}
return _needMoney;
}//getNeedMoney
}


var cart=function(){//购物车类,productCollection为委托对象
var _productCollection='';
var _nowCollection='';
var _this=this;
this.setCollection=function(collection){//设置collection
_productCollection=collection;
_nowCollection=_productCollection;//动态collection对象
_this.setTemp();
}
this.temp=[];//初始化collection对象
this.setTemp=function(){
if(!_productCollection){
throw new Error('请先指定collection对象!');
}
var listProduct=_productCollection.getProducts();
for(var i=0;i<listProduct.length;i++){
_this.temp[i]=[];
_this.temp[i]=listProduct[i];
}
};
this.delProduct=function(pID){//删除单个商品pID->商品的ID号
var needProduct=_nowCollection.getProductById(pID);
if(needProduct!=false){
_nowCollection.delProduct(needProduct);
}
}
this.setNumByPid=function(pID,newNum){//设置某个商品的数量,pID->商品ID
_nowCollection.setNumByPid(pID,newNum);
}
this.getCurrentNumByPid=function(pID){//获得某个商品的数量,pID->商品ID
var productObj=_nowCollection.getProductById(pID);
return productObj.num;
}
this.getTotalMoney=function(){//获得总金额
var _money=_nowCollection.getNeedMoney();
return _money;
}
this.getTotalMoneyByPid=function(pID){//获得单个商品的总金额
var _needProduct=_nowCollection.getProductById(pID);
if(_needProduct===false){
throw new Error('无此商品');
}
var _totalMoney=_needProduct.getTotal();
return _totalMoney;
}
this.renderCart=function(){//渲染函数
throw new Error('错误,该方法必须在子类中实现');
}
this.bindEvent=function(){//绑定事件函数
throw new Error('错误,该方法必须在子类中实现');
}
//this.renderCart();
this.touchOff=function(){//触发 www.2cto.com
_this.renderCart();
_this.bindEvent();
}
this.getNewCollection=function(){//获得新的collection对象
return _nowCollection;
}
}
/********************************购物车类****************************************/
var shoppingTrolley=function(){
//alert('test');
/***************检查*****************/
if(!cartTest){
throw new Error('请实例化cart对象');
}
/***************检查***************/
cartTest.renderCart=function(){//子渲染
var _content='';
for(var i=0;i<this.getNewCollection().getProducts().length;i++){
var _productEach=this.getNewCollection().getProducts()[i];
//alert(_productEach.getName());
_content+='<tr class="cartList"><td height="25" align="center" valign="middle" bgcolor="#FFFFFF" class="name"><input type="hidden" value="'+_productEach.getID()+'"/>'+_productEach.getName()+'</td><td height="25" align="center" valign="middle" bgcolor="#FFFFFF"><em>$'+_productEach.getOriginalprice()+'</em></td><td height="25" align="center" valign="middle" bgcolor="#FFFFFF" class="red">$'+_productEach.getPrice()+'</td><td height="25" align="center" valign="middle" bgcolor="#FFFFFF">'+_productEach.getWeight()+'Kg</td><td width="21" height="25" align="center" valign="middle" class="numJian" bgcolor="#FFFFFF">-</td><td width="28" height="25" align="center" valign="middle" bgcolor="#FFFFFF" class="nowNum"><span class="red">'+_productEach.num+'</span></td><td width="21" height="25" align="center" valign="middle" class="numJia" bgcolor="#FFFFFF">+</td><td height="25" align="center" valign="middle" bgcolor="#FFFFFF" class="eachTotal">$'+_productEach.getTotal()+'</td><td height="25" align="center" valign="middle" bgcolor="#FFFFFF" class="red">Delete</td></tr>';
}
//document.write(_content);
//alert(_content);
$('#checkCart').find('tr').eq(0).after(_content);//渲染面板
$('.step_total').find('.step_total_right').children('span').html('$'+cartTest.getTotalMoney());
/**popBoxCount**/
}//renderCart
cartTest.bindEvent=function(){
var _this=this;
//alert($('#'+win1.ID).find('.cartList').eq(0).html());
$('#checkCart').find('.cartList').each(function(index){
var _each=$(this);
_each.find('td:last').css('cursor','pointer').click(function(){
//alert('删除');
var _tempThis=$(this);
_this.delProduct($(this).parents('tr').find('td:first').find('input[type=hidden]').val());
$(this).parents('tr').remove();
/*******重新计算商品的总金额*******/
$('.step_total').find('.step_total_right').children('span').html('$'+_this.getTotalMoney());
/*******重新计算商品的总金额*******/
});//click删除商品

_each.children('td[class=numJia]').css('cursor','pointer').click(function(){
var _jiaThis=$(this);
//alert($(this).parents('tr').parents('table').find('input[type=hidden]').val());
_this.setNumByPid($(this).parents('tr').find('td:first').find('input[type=hidden]').val(),_this.getCurrentNumByPid($(this).parents('tr').find('td:first').find('input[type=hidden]').val())+1);
//alert(_jiaThis.parents('td').siblings('td[class=nowNum]').children('input').val());
_jiaThis.siblings('td[class=nowNum]').html(
_this.getCurrentNumByPid(_jiaThis.parents('tr').find('td:first').find('input[type=hidden]').val())
);
/***********重新计算某个商品的总金额***********/
_jiaThis.siblings('td[class=eachTotal]').children('span').html('$'+_this.getTotalMoneyByPid(_jiaThis.parents('tr').find('td:first').find('input[type=hidden]').val()));
/***********重新计算某个商品的总金额***********/

/*******重新计算商品的总金额*******/
$('.step_total').find('.step_total_right').children('span').html('$'+_this.getTotalMoney());
/*******重新计算商品的总金额*******/
});//click增加商品数量
_each.children('td[class=numJian]').css('cursor','pointer').click(function(){
var _jianThis=$(this);
if(_this.getCurrentNumByPid($(this).parents('tr').find('td:first').find('input[type=hidden]').val())>1){
_this.setNumByPid($(this).parents('tr').find('td:first').find('input[type=hidden]').val(),_this.getCurrentNumByPid($(this).parents('tr').find('td:first').find('input[type=hidden]').val())-1);
_jianThis.siblings('td[class=nowNum]').html(
_this.getCurrentNumByPid($(this).parents('tr').find('td:first').find('input[type=hidden]').val())
);
/***********重新计算某个商品的总金额***********/
_jianThis.siblings('td[class=eachTotal]').children('span').html('$'+_this.getTotalMoneyByPid(_jianThis.parents('tr').find('td:first').find('input[type=hidden]').val()));
/***********重新计算某个商品的总金额***********/

/*******重新计算商品的总金额*******/
$('.step_total').find('.step_total_right').children('span').html('$'+_this.getTotalMoney());
/*******重新计算商品的总金额*******/
}//如果当前商品数量大于1
});//click减少商品数量
});//each
}//bindEvent
cartTest.touchOff();//触发

$(window).unload(function(){//当离开页面时
//alert('狗头拜');
var lastCollection=cartTest.getNewCollection();
var _products=lastCollection.getProducts();
//console.log(_products.length);
var _cartCookie='';
var _countNum=0;
for(var i=0;i<_products.length;i++){
_cartCookie+=_products[i].getID()+'|'+_products[i].num+',';
_countNum+=_products[i].num*_products[i].getWeight();
}
_cartCookie=_cartCookie.substring(0,_cartCookie.length-1);
//alert(_cartCookie);
//alert(_cuntNum);
//alert(_countNum);
$.cookies.set('productItem',_cartCookie);//设置cookie
$.cookies.set('countNum',_countNum);//设置量的cookie
});

$('#btn').click(function(){
/******************若未选择任何商品返回*****************/
var _listProducts=cartTest.getNewCollection().getProducts();
if(_listProducts.length<0||_listProducts.length==0){
alert('Please select products!');
return;
}
window.location.href="http://www.php1.cn/"> });

}
/**********************购物车类***********************************/

/******************实例化对象******************/
var productCollections= new productCollection();
var cartTest=new cart();
cartTest.setCollection(productCollections);
new shoppingTrolley();

热心网友 时间:2022-05-16 10:09

<script language='javascript'>
function checkSum()
{
var sum = 0;
for(var i=0;i<document.form1.elements["writer"].length;i++)
{
if(document.form1.elements["writer"][i].checked)
{
sum = sum +parseInt(document.form1.elements["writer"][i].value);
}
}
totalprice.innerText = sum +" 元";
}
</script>
<form method=post name=form1>
<input type="checkbox" name=writer value="34" onclick="checkSum()">韩国耳饰tm56(34元)<br>
<input type="checkbox" name=writer value="46" onclick="checkSum()">纯银吊坠tc34(46元)<br>
<input type="checkbox" name=writer value="30" onclick="checkSum()">黄莺手镯ta345(30元)<br>
<input type="checkbox" name=writer value="40" onclick="checkSum()">翡翠玉镯1346(40元)<br>
<input type="checkbox" name=writer value="50" onclick="checkSum()">天涯耳饰1233(50元)<br>
<br>
总价为:<span id="totalprice">0 元</span>
</form>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
洛阳火车站到洛阳关林的钢厂怎么坐公车去?钢厂目前是否分为三个小... 李永昌的《桃花运》 歌词 失眠特效药有哪些 失眠有什么快速特效药 长期失眠用什么药最好?失眠治疗特效药有哪些 失眠怎么办办,有没有什么特效药 本人严重失眠,有特效药吗? 长期焦虑失眠怎么办?有没有好的特效药? 离婚了,小孩抚养费对方拖着不给,玩失踪,怎么办? 小孩抚养费前夫每月都拖着不给怎么解决 淘宝里购买时的选择数量的是什么按钮 asp.net DataList里数量加减的按钮 想通过使用otg功能把手机和mp4连接,然后用手机下载东西到mp4上,怎么操 struts中jquery如何实现购物车中多个商品数量的增减 asp.net中的Gridview购物车使用按钮实现商品数量的加减 大侠们 帮帮 ... 。asp购物车的itemtemplate中有加减两个按钮,然后是一个textbox来放购买数量,我该怎么实现点击按钮改变 在家期间你都做了什么呢? 购物车中 用鼠标点击文本框前的‘+’号 或后面的‘-’号时 数量相应增减 那段代码是JS么 是的话怎么写的? 李兰娟提出要控制明星片酬,其中有哪些心酸? 我要投诉咸丰县人民医院综合大楼五楼,上白班的护士? 求php增加购物车数量的加减, 幼师护士银行女三不娶怎么回事? ecshop购物车加减css样式代码怎么样添加 家里因为治疗我的精神病钱都花光了,我也没钱但我又想买台32寸的电脑显示器,我只能用花呗买,该不买? 请教一个问题! &#47;** * 购物车加减按钮 ,现在第一个数据可以,后面的不可以! 因疫情被困在出租房里不能工作。断粮了咋办? jquery问题购物车加减按钮 马云给援鄂医护姐妹婚礼随份子,随了多少? 马云到合肥赴约,与美女*涮火锅,只为兑现当初的承诺,你怎么看? 科大讯飞股票上涨原因 jsp中怎么实现购物车中的加减物品的功能? 健康社区名词解释 eclipse购物车如何加减累加编程,如何界面更改设计,添加新功能 鼠年女孩叫满鑫好吗? 可道兴旺健康社区服务的手段主要有哪些? 益宏集团有健康社区? 乾翔健康社区康养中心是干什么的? usb插头耳机听见游戏音乐声音.耳机里不能听见对方语音说话 ghit健康社区如何绑定个人信息? 我买的耳机是只有一个USB插孔的,可是我的是台式电脑,插上之后,发现能听到声音,却不能讲话!求帮助! usb接口的耳麦自带话筒不能说话,怎么办 14天社区健康管理是什么意思 USB耳机一进入游戏麦克风就没用,WIN7 Z170主板,霜冻之蓝V2,进游戏读条2次左右麦克风不能说话 USB耳麦聊天听不到对方的声音 我的耳麦式USB插口的,为什么不能语音呢 怎样才能让我的文档不显示在桌面上? 如何让桌面上文件夹里的东西不显示在桌面上的方法 怎样用处理实现,桌面不显示“我的文档”桌面图标。 打开的文件夹不在桌面显示任务栏有显示已经打开了,怎么回事呀 在电脑桌面上怎么显示隐藏的文档?