前端JS實(shí)現(xiàn)購物車功能添加到購物車js代碼,點(diǎn)擊商品加減按鈕商品數(shù)量加減,點(diǎn)擊單選按鈕和全選按鈕顏色變化,總價(jià)聯(lián)動(dòng)變化。項(xiàng)目中應(yīng)用的都是的樣式,css就不一一貼出來了。
加函數(shù)添加到購物車js代碼,減函數(shù),手動(dòng)修改數(shù)量判斷庫存函數(shù),總價(jià)格計(jì)算函數(shù),單選事件,全選事件,一共分為6個(gè)事件
刪 除
全選

合計(jì): ¥ 0
不含運(yùn)費(fèi)
//計(jì)算總價(jià)
function setTotal(){
var allprice=0;//總價(jià)格
var allnum=0;//總數(shù)量
$(".checkitem").each(function(){
if($(this).hasClass('oncheck')){
var num=parseInt($(this).parents('[priceOne]').find('input[name=count]').val());//單個(gè)商品的購買數(shù)量
var price=$(this).parents('[priceOne]').find('[unitprice]').text();//商品單價(jià)需要從后臺(tái)獲取
allprice+=num*price;//每樣商品的總價(jià)
allnum+=num;
}
})
$(".allprice").html(allprice.toFixed(2));
$(".allnum").html(allnum);
}
setTotal();
//手動(dòng)修改文本框商品數(shù)量與庫存的限制
function amount_input(tag,sellprice,stock){

var amount=parseInt($(tag).val());
if(isNaN(amount)){
layer.msg('最少購買量為1');
$(tag).val(1);
}else{
if(amount>stock){
layer.msg('購買數(shù)量不能大于庫存');
$(tag).val(stock);
}else if(amount<1){
layer.msg('最少購買量為1');
$(tag).val(1);
}
}
var val=parseFloat(sellprice)*parseInt($(tag).val());
setTotal();
}
// 全選
$('#checkall').click(function(){
$(this).toggleClass('oncheck');
if($(this).hasClass('oncheck')){
$('.checkitem').addClass('oncheck');
setTotal();
}else{
$('.checkitem').removeClass('oncheck');

setTotal();
}
});
//單選
$('.checkitem').click(function(){
$(this).toggleClass('oncheck');
var itemsleng=$('.checkitem').length;
var checkedleng=$('[priceOne]').find('i').filter('.oncheck').length;
if(checkedleng==itemsleng){
$('.checkall').addClass('oncheck');
setTotal();
}else{
$('.checkall').removeClass('oncheck');
setTotal();
}
});
// 購買數(shù)量加
function plus(tag,sellprice,stock){
var _this=$(tag);
var input=_this.prev('input');
if(_this.prev('input[disabled]').length>0){
return;
}
var amount=parseInt(input.val());

amount++;
if(amount>stock){
return layer.msg('購買數(shù)量不能大于庫存');
}else{
input.val(amount);
setTotal();
}
}
// 購買數(shù)量減
function minus(tag,sellprice,stock){
var _this=$(tag);
var input=_this.next('input');
if(_this.next('input[disabled]').length>0){
return;
}
var amount=parseInt(input.val());
amount--;
if(amount<=0){
return layer.msg('購買數(shù)量不能小于1');
}else{
input.val(amount);
setTotal();
}
}