![2fc4f52c02d05ce035e30464ab2626d4.png](https://i-blog.csdnimg.cn/blog_migrate/edd93fad9bcd08ac1bcb9282b24ac4dc.jpeg)
首先实现我们还是把之前的html静态页面搭建好
![530afbfc6b46e28f0ca21861aadd1310.png](https://i-blog.csdnimg.cn/blog_migrate/0d3eac8b2d0abfcae178d065d9033ce6.jpeg)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jd 购物车</title>
<link rel="stylesheet" type="text/css" href="../css/guifan.css" />
<link rel="stylesheet" type="text/css" href="../css/jd.css" />
<link rel="stylesheet" type="text/css" href="../icon/iconfont.css" />
<script src="jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
<script src="jd/jss.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<!--导航开始-->
<div class="nva">
<div class="warp">
<ul class="nav_ul1">
<li><a href=""><i class="iconfont"></i>京东首页</a></li>
<li><a href="">配送到:河南</a></li>
</ul>
<ul class="nav_ul2">
<li><a href="">洋洋宝贝</a><span>|</span></li>
<li><a href="">我的订单</a><span>|</span></li>
<li><a href="">我的京东</a><span>|</span></li>
<li><a href="">京东会员</a><span>|</span></li>
<li><a href="">企业采购</a><span>|</span></li>
<li><a href="">京东手机</a><span>|</span></li>
<li><a href="">关注京东</a><span>|</span></li>
<li><a href="">客户服务</a><span>|</span></li>
<li><a href="">网站导航</a></li>
</ul>
</div>
</div>
<!--导航结束-->
<!--搜索框开始-->
<div class="search">
<div class="warp">
<img src="../img/logo.jpg" />
<div class="search_div">
<input type="text" class="ssearch_text" />
<input type="button" value="搜索" class="search_but" />
</div>
</div>
</div>
<!--搜索框结束-->
<!--标题开始-->
<div class="title warp">
<h3>全部商品</h3>
<div>
<span>配送至</span>
<select>
<option>信阳</option>
<option>郑州</option>
<option>平顶山</option>
<option>驻马店</option>
<option>安阳</option>
</select>
</div>
</div>
<!--标题结束-->
<!--标题菜单开始-->
<div class="tips warp">
<ul>
<li>
<input type="checkbox" name="innam" id="_top" /> 全选
</li>
<li>商品</li>
<li>单价</li>
<li>数量</li>
<li>小计</li>
<li>操作</li>
</ul>
</div>
<!--标题菜单结束-->
<!--商品详情展示开始-->
<div class="info warp">
<ul>
<li class="info_1">
<input type="checkbox" name="inname" />
</li>
<li class="info_2"><img src="jd/jquery/img1.jpg" width="80px" /></li>
<li class="info_3"><a href="">【京东超市】desha春秋季儿童休闲服</a></li>
<li class="info_4"><a href=""> 电脑</a></li>
<li class="info_5"><strong>¥100</strong></li>
<li class="info_6">
<button class="bot">-</button>
<input type="text" name="" id="iname" value="1" />
<button class="bot">+</button>
</li>
<li class="info_7"><strong>¥100</strong></li>
<li>
<a onclick="sancu(this),oncktest2()" name="sss">删除</a>
<br />
<a>已到我的关注</a>
</li>
</ul>
</div>
<div class="info warp">
<ul>
<li class="info_1">
<input type="checkbox" name="inname" />
</li>
<li class="info_2"><img src="../img/img1.jpg" width="80px" /></li>
<li class="info_3"><a href="">【京东超市】desha春秋季儿童休闲服</a></li>
<li class="info_4"><a href=""> 洗衣液</a></li>
<li class="info_5"><strong>¥200</strong></li>
<li class="info_6">
<button class="bot">-</button>
<input type="text" name="" id="iname" value="1" />
<button class="bot">+</button>
</li>
<li class="info_7"><strong>¥200</strong></li>
<li>
<a onclick="sancu(this),oncktest2()"name="sss">删除</a>
<br />
<a>已到我的关注</a>
</li>
</ul>
</div>
<div class="info warp">
<ul>
<li class="info_1">
<input type="checkbox" name="inname" />
</li>
<li class="info_2"><img src="../img/img1.jpg" width="80px" /></li>
<li class="info_3"><a href="">【京东超市】desha春秋季儿童休闲服</a></li>
<li class="info_4"><a href="">颜色:灰色+粉红</a></li>
<li class="info_5"><strong>¥300</strong></li>
<li class="info_6">
<button class="bot" onclick="oncktest3(this,1),oncktest2() ">-</button>
<input type="text" name="" id="iname" value="1" />
<button class="bot" onclick="oncktest3(this,2),oncktest2()">+</button>
</li>
<li class="info_7"><strong>¥300</strong></li>
<li>
<a onclick="sancu(this),oncktest2()" name="sss">删除</a>
<br />
<a>已到我的关注</a>
</li>
</ul>
</div>
<!--结算开始-->
<div class="balance warp">
<ul class="balance_ul1">
<li>
<input type="checkbox" name="innam" id="_down" value="" /> 全选
</li>
<li><a>删除选中商品</a></li>
<li><a>移到我的关注</a></li>
<li><a>清除下柜商品</a></li>
</ul>
<ul class="balance_ul2">
<li>已经选择<span id="qqq" onclick="oncktest2()">0</span>件商品</li>
<li>总价 <span id="ppp" onclick="oncktest2()">¥0</span></li>
<li>
<button class="butt">去结算</button>
</li>
</ul>
</div>
<!--结算结束-->
</body>
然后就修饰页面的css语句
/**导航开始**/
.nav{
height: 30px;
background-color:#f1f1f1;
}
.wrap{
width:1050px;
margin:0 auto ;
}
.nav_u1,.nav_u2 li{
float:left;
}
.nav_u1 li{
float:left;
line-height:30px;
margin-right:20px ;
}
.nav a,.nav_u2 li{
font-size:12px;
color:grey;
}
.nav_u2{
float:right;
}
.nav_u2 li,.nav_u2 span{
line-height: 30px;
margin-left: 15px;
}
/**导航结束**/
/**搜索开始**/
.search{
margin-top:30px ;
}
.search img{
float:left;
}
.search .search_div{
float:right;
}
.search input[type='text']{
width:265px;
height: 27px;
border: 2px solid red;
margin-top:20px ;
position:relative;
left:4px;
}
.search input[type='button']{
width:60px;
height: 30px;
background-color: #c91623;
color:white;
border: 0px;
}
/**搜索结束**/
/*title开始*/
.title{
margin-top:140px;
}
.title h3{
float:left;
margin-left: 10px;
color:#c91623;
font-size: 26px;
}
.title .title_div{
float:right;
}
/*title结束*/
/**内容标题开始**/
.content_tips{
margin-top:175px;
height: 50px;
background-color: #f1f1f1;
border:1px solid black;
}
.content_tips li{
float:left;
line-height: 50px;
color:gery;
}
.content_tips ul>li:nth-child(1){
margin-left:20px;
}
.content_tips ul>li:nth-child(2){
margin-left:94px;
}
.content_tips ul>li:nth-child(3){
margin-left:400px;
}
.content_tips ul>li:nth-child(4){
margin-left:112px;
}
.content_tips ul>li:nth-child(5){
margin-left:72px;
}
.content_tips ul>li:nth-child(6){
margin-left:42px;
}
/**内容标题结束**/
/**内容开始**/
.content{
/**清除浮动的影响**/
clear:both;
margin-top:25px;
height: 125px;
border: 1px solid black;
background-color:#FFF4E8;
}
.content li{
float:left;
/*line-height: 125px;*/
margin-top:20px;
height: 50px;/**设置删除中的内容**/
}
.content img{
width:80px;
height: 80px;
}
.content input[type='text']{
width:30px;
height: 20px;
}
.content ul>li:nth-child(1){
margin-left:20px;
}
.content ul>li:nth-child(2){
margin-left:34px;
}
.content ul>li:nth-child(3){
margin-left:80px;
}
.content ul>li:nth-child(4){
margin-left:90px;
}
.content ul>li:nth-child(5){
margin-left:40px;
}
.content ul>li:nth-child(6){
margin-left:25px;
}
.content .btn{
width: 20px;
height: 18px;
}
/**内容结束**/
/**底部开始**/
.foot{
margin-top:15px;
height: 50px;
border:1px solid black;
}
.foot li{
line-height: 50px;
float:left;
font-size:14px;
margin-left:44px;
}
.foot a{
color:black;
}
.foot span{
color:red;
font-size:28px;
font-weight: bold;
}
.foot input[type='button']{
width:75px;
height: 50px;
background-color: red;
color:white;
}
/**底部结束**/
现在开始实现我们的动态功能 全选和全不选
思路首先获取操作对象
$(function() {
//实现全选事件 获取全选对象
$("#_top,#_down").click(function() {
// 当前的全选状态决定给所有单选的状态
$(":checkbox").prop("checked", $(this).prop("checked"));
})
//获取
然后实现的是单选 控制全选的事件
如果单选有一个没有单选上就不会全选
//获取所有单选
$("input[name=inname]").click(function() {
var flag = true;
var par = $("input[name=inname]");
par.each(function() {
if (!$(this).prop("checked")) {
flag = false;
}
})
$("#_top,#_down").prop("checked", flag);
})
然后需要实现点加减号实现数量的增加和后面商品的价格随数量变动
$("li .bot:first-child").click(function() {
var txt = $(this).next();
var txtVal = txt.val();
if (txtVal > 0) {
txt.val(--txtVal);
}
var commodityPrice = $(this).parent().prev().text().substr(1);
//next 是获取最后相邻的节点 的字节的包含strong的
$(this).parent().next().children("strong").text("¥" + commodityPrice * txtVal);
count();
});
$("li .bot:last-child").click(function() {
var txt = $(this).prev();
var txtVal = txt.val();
txt.val(++txtVal);
var commodityPrice = $(this).parent().prev().text().substr(1);
$(this).parent().next().children("strong").text("¥" + commodityPrice * txtVal);
count();
});
$(":checkbox").click(count)
然后我们在来给选择的商品然后统计他的商品总计累加
function count() {
var num = 0;
var countPrice = 0;
$(":checkbox").each(function() {
if ($(this).prop("checked")) {
//获取当前对象的父节点 然后父节点的同级别节点 has同级别节点包含有strong的节点获取到后去last最后一个的文本值然后从下标为1开始截取到最后
var price = $(this).parent().siblings().has("strong").last().text().substring(1);
if (price > 0) {
num++;
//parseFloat() 函数可解析一个字符串,并返回一个浮点数。
countPrice += parseFloat(price);
}
}
});
$("#qqq").text(num);
$("#ppp").text("¥" + countPrice);
}
然后就是删除功能了 这个实现起来比较简单 绑定好事件获取需要删除的节点remove()就好了
$("a[name=sss]").click(function() {
$(this).parent().parent().parent().remove();
count();
})