一、概述
1. 字符集:UTF-8,操作系统版本:Windows7旗舰版
2.完成时间:2019.3.19
3.作者:任鑫
4.项目花费时间:2h
二.、项目描述
使用原生的JavaScript代码,完成京东的购物车基本效果制作
三、源代码
html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="css/reset.css" />
<link rel="stylesheet" type="text/css" href="css/jd.css" />
<link rel="stylesheet" type="text/css" href="icon/iconfont.css"/>
<script type="text/javascript" src="js/jd.js" ></script>
</head>
<body>
<!--导航开始-->
<div class="nav">
<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="search_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="fav" id="all" onclick="checkTest1(this),checkTest2()" />
全选
</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="fav" onclick="checkTest2()"/> </li>
<li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li>
<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li>
<li class="info_4"><a>颜色:灰色+粉红</a> </li>
<li class="info_5">182.5</li>
<li class="info_6">
<button onclick="checkTest3(this,1),checkTest2()">-</button>
<input type="text" name="" id="" value="1" />
<button class="bot" onclick="checkTest3(this,2), checkTest2()">+</button>
</li>
<li class="info_7">¥182.5</li>
<li>
<a href="javascript:viod(0)" onclick="checkTest4(this),checkTest2()">删除</a><br />
<a>已到我的关注</a>
</li>
</ul>
</div>
<div class="info warp">
<ul>
<li class="info_1"><input type="checkbox" name="fav" onclick="checkTest2()"/> </li>
<li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li>
<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li>
<li class="info_4"><a>颜色:灰色+粉红</a> </li>
<li class="info_5">182.5</li>
<li class="info_6">
<button onclick="checkTest3(this,1),checkTest2()">-</button>
<input type="text" name="" id="" value="1" />
<button class="bot" onclick="checkTest3(this,2),checkTest2()">+</button>
</li>
<li class="info_7">¥182.5</li>
<li>
<a href="javascript:viod(0)" onclick="checkTest4(this),checkTest2()">删除</a><br />
<a>已到我的关注</a>
</li>
</ul>
</div>
<div class="info warp">
<ul>
<li class="info_1"><input type="checkbox" name="fav" onclick="checkTest2()" /> </li>
<li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li>
<li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li>
<li class="info_4"><a>颜色:灰色+粉红</a> </li>
<li class="info_5">182.5</li>
<li class="info_6">
<button onclick="checkTest3(this,1),checkTest2()">-</button>
<input type="text" name="" id="" value="1" />
<button class="bot" onclick="checkTest3(this,2),checkTest2()">+</button>
</li>
<li class="info_7">¥182.5</li>
<li>
<a href="javascript:viod(0)" onclick="checkTest4(this) ,checkTest2()">删除</a><br />
<a>已到我的关注</a>
</li>
</ul>
</div>
<!--商品详情展示结束-->
<!--结算开始-->
<div class="balance warp">
<ul class="balance_ul1">
<li>
<input type="checkbox" name="fav" id="" value="" onclick="checkTest1(this),checkTest2()" />
全选
</li>
<li><a>删除选中商品</a></li>
<li><a>移到我的关注</a></li>
<li><a>清除下柜商品</a></li>
</ul>
<ul class="balance_ul2">
<li>已经选择<span id="snum">0</span>件商品</li>
<li>总价 <span id="zongz">¥0</span></li>
<li>
<button class="butt">去结算</button>
</li>
</ul>
</div>
<!--结算结束-->
</body>
</html>
js代码
//获得所有多选框对象
var fav = document.getElementsByName("fav");
//判断是否全选操作
function checkTest1(th){
var flag = th.checked;
for(var i in fav){
fav[i].checked=flag;
}
}
//单选决定全选操作
function checkTest2(){
var flag =true;
for(var i=1;i<fav.length-1;i++){
if(!fav[i].checked){
flag=false;
break;
}
}
//决定框是否勾选
fav[0].checked=flag;
fav[fav.length-1].checked=flag;
//价格是否统计
//商品的总价格
var zong =0;
//统计是否有勾选的对象
var num=0;
//统计商品的数量
var spNum=0;
for(var i=1;i<fav.length-1;i++){
if(fav[i].checked){
num++;
//获得ul父节点
var par=fav[i].parentNode.parentNode;
//获得指定ul下面的所有的li
var li= par.getElementsByTagName("li");
//单个商品的总价格
var z=li[6].innerText.split("¥")[1];
//获得所有商品的总价格
zong+=Number(z);
document.getElementById("zongz").innerText=zong;
//获得商品的数量
var z2=li[5].getElementsByTagName("input");
var num2=z2[0].value;
spNum+=Number(num2);
//获得商品数量统计的对象
document.getElementById("snum").innerText=spNum;
}
}
if(num==0){
document.getElementById("zongz").innerText=0;
document.getElementById("snum").innerText=0;
}
}
function checkTest3(th,sig){
var pre;
if(sig==1){
pre = th.nextElementSibling;
if(pre.value>0)
pre.value = Number(pre.value)-1;
}else{
//获得上一个节点对象
pre = th.previousElementSibling;
//获得节点的value值
pre.value = Number(pre.value)+1;
}
var val = pre.parentNode.previousElementSibling.innerHTML;
var zong = Number(val) * Number(pre.value);
pre.parentNode.nextElementSibling.innerHTML="¥" + zong;
}
function checkTest4(th){
var div = th.parentNode.parentNode.parentNode;
div.remove();
}