这期内容当中小编将会给大家带来有关使用jQuery怎么实现一个购物车全功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

HTML&&CSS:
Document
| 全选 | 商品名称 | 单价 | 数量 | 小计 | 操作 |
|---|---|---|---|---|---|
| 电脑 | ¥200.20 | ¥200.20 | 删除 | ||
| 手机 | ¥100.30 | ¥100.30 | 删除 | ||
| 空调 | ¥1000.99 | ¥1000.99 | 删除 |
JS:
//里面三个小的复选按钮选中状态跟着 全选按钮走
//因为checked是复选框的固有属性,此时利用prop()获取和设置该属性
$(function() {
getSum();
$(".checkAll").change(function() {
// console.log($(this).prop("checked"));//全选按钮的状态
$(".ed,.checkAll").prop("checked", $(this).prop("checked"));
getSum();
if ($(".ed,.checkAll").prop("checked")) {
//如果全选,让所有商品添加类名(背景颜色)
$(".tab tbody").children().addClass("current");
} else {
$(".tab tbody").children().removeClass("current");
}
})
//如果所有小按钮的个数都被选了,全选按钮就选上,如果小按钮没有被选上,则全选按钮就不选上
//:checked选择器,查找本选中的表单元素
$(".ed").change(function() {
// console.log($(".ed:checked").length);//小复选框选中的个数
// console.log($(".ed").length);
//console.log($(this).prop("checked"));
if ($(".ed:checked").length === $(".ed").length) {
$(".checkAll").prop("checked", true);
} else {
$(".checkAll").prop("checked", false);
}
getSum();
if ($(this).prop("checked")) {
$(this).parents("tr").addClass("current");
} else {
$(this).parents("tr").removeClass("current");
}
})
$(".add").click(function() {
let n = parseInt($(this).siblings(".num").val());
//console.log(n);
n++;
$(this).siblings(".num").val(n);
let price = $(this).parent().siblings(".price").html();
price = price.substr(1);
//console.log(price);
$(this).parent().siblings(".small_total").text("¥" + (n * price).toFixed(2));
getSum();
})
$(".sub").click(function() {
let n = parseInt($(this).siblings(".num").val());
//console.log(n);
if (n === 1) {
return false;
}
n--;
$(this).siblings(".num").val(n);
let price = $(this).parent().siblings(".price").html();
price = price.substr(1);
//console.log(price);
$(this).parent().siblings(".small_total").text("¥" + (n * price).toFixed(2));
getSum();
})
//用户也可以直接修改表单num里面的值(小bug),同样计算小计
$(".num").change(function() {
let n = $(this).val();
let price = $(this).parent().siblings(".price").html();
price = price.substr(1);
$(this).parent().siblings(".small_total").text("¥" + (n * price).toFixed(2));
getSum();
})
function getSum() {
let count = 0; //计算总件数
let money = 0; //计算总价钱
$(".num").each(function(index) {
if ($(".ed").eq(index).prop("checked") == true) {
count += parseInt($(".num").eq(index).val());
money += parseFloat($(".small_total").eq(index).text().substr(1));
}
})
$(".num_sum").html(count);
$(".sum").html(money.toFixed(2));
}
//删除商品模块
//点击删除之后一定是删除当前的商品,所以从$(this)出发
$(".delete").click(function() {
//删除的是当前的商品
$(this).parent().remove();
$(".ed").change();
getSum();
clearCheckAll();
})
//删除选定的商品:小的复选框如果选中就删除对应的商品
$(".delSome").click(function() {
//删除的是选中的商品
$(".ed:checked").parent().parent().remove();
getSum();
clearCheckAll();
})
//清空购物车
$(".delAll").click(function() {
$(".tab tbody").empty();
getSum();
clearCheckAll();
})
function clearCheckAll() {
if ($(".tab tbody")[0].innerText == '') {
$(".checkAll").prop("checked", false);
}
}
})上述就是小编为大家分享的使用jQuery怎么实现一个购物车全功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。