这段代码是一个购物车页面的功能实现,主要实现了以下功能:

  1. 获取页面中类名为'mycheckbox'的复选框数量,并赋值给变量checkboxLen。

  2. 给页面中的复选框绑定点击事件,根据复选框的选中状态改变相应图片的显示。

  3. 给类名为'mycheckbox'的复选框绑定点击事件,根据选中的复选框数量来判断是否全选,并统计总金额。

  4. 给类名为'allselect'的复选框绑定点击事件,根据全选复选框的选中状态改变所有复选框的状态,并统计总金额。

  5. 定义函数total来统计选中商品的总金额,并根据金额是否为整数来显示不同的格式。

  6. 给类名为'sub'的按钮绑定点击事件,实现数量减少的功能,并调用total函数重新计算总金额。

  7. 给类名为'add'的按钮绑定点击事件,实现数量增加的功能,并调用total函数重新计算总金额。

  8. 定义函数isInteger来判断一个数是否为整数。

  9. 给类名为'cart-operation'的按钮绑定点击事件,实现编辑和完成状态的切换,以及相应的显示和隐藏操作。

  10. 给类名为'delete-btn'的按钮绑定点击事件,实现删除选中商品的功能,并调用total函数重新计算总金额。

代码示例:

var checkboxLen;
var checkedLen = 0;
$(function(){
	var checkbox = document.getElementsByClassName('mycheckbox')
	checkboxLen = checkbox.length;
})

// 多选框-统一
$(document).on('click','.checkbox',function(){
	if($(this)[0].checked){
		// 需变 选中
		$(this).prev().attr('src','./images/tick-s.png');
	}else{
		// 需变 不选中
		$(this).prev().attr('src','./images/tick.png');
	}
})


// 多选框-上面
$(document).on('click','.mycheckbox',function(){
	checkedLen = 0;
	$('.mycheckbox').each(function(index,item){
		if($(this)[0].checked){
			checkedLen++
		}
	});
	$('.checkedLen').html(checkedLen);
	if(checkedLen==checkboxLen){
		$('.allselect').prop('checked', true);
		$('.allselect').prev().attr('src','./images/tick-s.png');
	}else{
		$('.allselect').prop('checked', false);
		$('.allselect').prev().attr('src','./images/tick.png');
	}
	total();
})


// 多选框-全选
$(document).on('click','.allselect',function(){
	if($(this)[0].checked){
		// 需变 选中
		$('.tick').attr('src','./images/tick-s.png');
		$('.checkbox').prop('checked', true);
	}else{
		// 需变 不选中
		$('.tick').attr('src','./images/tick.png');
		$('.checkbox').prop('checked', false);
	}
	checkedLen = 0;
	$('.mycheckbox').each(function(index,item){
		if($(this)[0].checked){
			checkedLen++
		}
	});
	$('.checkedLen').html(checkedLen);
	total();
})


// 统计金额
function total(){
	var integer = 0;
	$('.mycheckbox').each(function(index,item){
		if($(this)[0].checked){
			var price = Number($(this).parents('.cart-block').find('.price').html());
			var num = $(this).parents('.cart-block').find('.num-input').val();
			integer += price*num;
		}
	});
	integer = Math.floor(integer*100)/100;
	if(isInteger(integer)){
		$('.integer').html(integer);
		$('.point').html('');
		return;
	}
	var str = integer.toString();
	var index = str.indexOf('.');
	var result = str.substr(index + 1,str.length);
	var integerStr = str.substr(0,index);
	$('.integer').html(integerStr);	
	$('.point').html('.'+result);	
}


// 数量增减
$(document).on('click','.sub',function(){
	var val = $(this).parent().find('.num-input').val();
	if(val==1){
		return;
	}
	var num = Number(val)-1;
	$(this).parent().find('.num-input').val(num);
	total();
})

$(document).on('click','.add',function(){
	var val = $(this).parent().find('.num-input').val();
	var num = Number(val)+1;
	$(this).parent().find('.num-input').val(num);
	total();
})

function isInteger(obj) {
 return obj%1 === 0
}


// 编辑
$(document).on('click','.cart-operation',function(){
	if($(this).hasClass('edit')){
		$(this).removeClass('edit');
		$(this).addClass('delete');
		$('.settlement').hide();
		$('.delete-btn').show();
		$(this).html('完成');
	}else{
		$('.settlement').css('display','flex');
		$('.delete-btn').hide();
		$(this).addClass('edit');
		$(this).removeClass('delete');
		$(this).html('编辑');
	}
})


// 删除
$(document).on('click','.delete-btn',function(){
	$('.mycheckbox').each(function(index,item){
		if(item.checked){
			$(item).parents('.cart-block').remove();
		}
	});
	total();
})

代码解释:

  • 获取复选框数量: 代码首先获取页面中类名为'mycheckbox'的复选框数量,并赋值给变量checkboxLen,方便后续判断是否全选。
  • 绑定点击事件: 代码为页面中的所有复选框绑定了点击事件。根据复选框的选中状态,改变相应的图片显示,并统计选中商品的数量和总金额。
  • 全选功能: 代码为全选复选框绑定了点击事件,当点击全选复选框时,会根据其选中状态改变所有复选框的状态,并重新计算总金额。
  • 统计总金额: 函数total负责统计选中商品的总金额,并根据金额是否为整数来显示不同的格式。
  • 数量增减功能: 代码为数量增减按钮绑定了点击事件,实现数量的增加和减少,并调用total函数重新计算总金额。
  • 编辑与删除功能: 代码为编辑和删除按钮绑定了点击事件,实现编辑和删除状态的切换,以及相应的显示和隐藏操作。

这段代码实现了购物车页面常用的功能,可以作为学习参考,并根据实际需求进行修改和扩展。

购物车功能实现代码解析:多选框、全选、数量增减、金额统计、编辑与删除

原文地址: https://www.cveoy.top/t/topic/dI2U 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录