Js 基础学习之--模拟加入购物车
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>购物车</title>
<style type="text/css">
*{margin:0; padding: 0; font-size: 14px; font-family: 微软雅黑;}
ul li{list-style:none;}
.clear{clear: left;}
#products{
width: 1100px;
margin: 10px auto;
}
#products li{
width:260px;
float: left;
border:solid 1px #E9E9E9;
margin-right:10px;
}
#products li span{
display: block;
width: 100%;
text-align:center;
}
#products li em{
font-size:24px;
font-family: Arial;
color:#E4393C;
display: block;
margin-left: 20px;
}
#products li p{
color:#333;
margin: 10px 0 0 20px;
}
#products li a{
display: block;
width: 120px;
height: 30px;
line-height: 30px;
border: solid 1px #DDDDDD;
text-align: center;
margin: 20px auto;
text-decoration: none;
color:#E4393C;
}
#products li a:hover{
border: solid 1px #E4393C;
}
.shopcart{
width:1100px;
margin: 50px auto;
}
.shopcart h1{
font-size:18px;
color:#E4393C;
border-bottom:solid 4px #E9E9E9;
padding-bottom: 10px;
}
.shopcart .list-head{
width: 96%;
background: #F3F3F3;
height: 40px;
line-height: 40px;
padding:0 2% 0 2%;
}
.shopcart .list-head div{
float:left;
}
.h1,.c1{width: 60%;}
.h2,.c2{width: 20%;}
.h3,.c3{width: 20%; }
#cart-list .pl{
width: 100%;
height: 94px;
border-bottom:solid 1px #C5C5C5;
clear: left;
}
#cart-list .pl div{
float: left;
height: 94px;
line-height: 94px;
background: #FFF4E8;
}
#cart-list div span{
display: block;
float: left;
padding: 5px 0 0 20px;
}
#cart-list div p{
float: left;
padding-left: 20px;
}
#cart-list div span img{
width:80px;
}
.pl a{
color:#666;
text-decoration: none;
}
.pl a:hover{
color:#ff0000;
text-decoration: underline;
}
</style>
<script src="js/cookie.js"></script>
<script>
window.onload = function(){
var date = new Date();
date.setDate(date.getDate() + 3);
var products = document.getElementById("products");
var btn = products.getElementsByTagName("a");
var productList = document.getElementById("cart-list");
function getShopList(){
var html = "";
//获取Cookie的内容
var cookieNow = getCookie("products");
//判断cookie数组是否为空
var arr = cookieNow == ""? []:cookieNow.split("|");
for(var i = 0;i < arr.length ; i++){
html += "<div class='pl'>"
+ "<div class='c1'>"
+ "<span>" + arr[i].split("#")[0] +"</span>"
+ "<p>" + arr[i].split("#")[2] + "</p>"
+ "</div>"
+ "<div class='c2'>"+ arr[i].split("#")[1] +"</div>"
+ "<div class='c3'><a href='javascript:;'"
+"οnclick='delShop(this)'>删除</a></div>"
+ "</div>";
}
//将购物商品加入购物车
productList.innerHTML = html;
}
getShopList();
for(var i = 0;i < btn.length; i++){
btn[i].onclick = function(){
//获取商品信息
var productsImg = this.parentNode.children[0].innerHTML;
var productsPrice = this.parentNode.children[1].innerHTML;
var productsName = this.parentNode.children[2].innerHTML;
var oldCookievalue = getCookie("products");
//alert(oldCookievalue);
if(oldCookievalue == ""){
var str = productsImg + "#" +productsPrice + "#" + productsName;
//console.log(str);
}
else{
var str = oldCookievalue + "|" + productsImg + "#" +productsPrice + "#" + productsName;
//console.log(str);
}
setCookie2("products",str,date);
//加入购物车
getShopList();
}
}
}
function delProduct(obj){
document.getElementById("cart-list").removeChild(obj.parentNode.parentNode);
}
function delShop(obj){
obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
var cookieValue = getCookie();
console.log(oldCookievalue);
}
</script>
</head>
<body>
<div id="products">
<ul>
<li>
<span><img src="img/1.jpg"></span>
<em>¥2999</em>
<p>乐视超级电视 S50</p>
<a href="javascript:;">加入购物车</a>
</li>
<li>
<span><img src="img/2.jpg"></span>
<em>¥3999</em>
<p>乐视超级电视 S60</p>
<a href="javascript:;">加入购物车</a>
</li>
<li>
<span><img src="img/3.jpg"></span>
<em>¥4999</em>
<p>乐视超级电视 S70</p>
<a href="javascript:;">加入购物车</a>
</li>
<li>
<span><img src="img/4.jpg"></span>
<em>¥5999</em>
<p>乐视超级电视 S80</p>
<a href="javascript:;">加入购物车</a>
</li>
</ul>
</div>
<div class="clear"></div>
<div class="shopcart">
<h1>全部商品</h1>
<div class="list-head">
<div class="h1">商品名称</div>
<div class="h2">价格</div>
<div class="h3">操作</div>
</div>
<div id="cart-list">
<!-- <div class="pl">
<div class="c1">
<span><img src="img/1.jpg"></span>
<p>乐视超级电视 S50</p>
</div>
<div class="c2">¥1000</div>
<div class="c3"><a href="#">删除</a></div>
</div> -->
</div>
</div>
</body>
</html>
cookie的封装函数
//设置(创建、修改)cookie数据
//参数1:键值
//参数2:键名
function setCookie(key,value){
document.cookie = key + "=" + encodeURIComponent(value);
}
/*
测试: setCookie("people1","你好1");
*/
//设置(创建、修改)cookie数据
//参数1:键值
//参数2:键名
//参数3:过期时间
function setCookie1(key,value,dateTime){
document.cookie = key + "=" + encodeURIComponent(value)+";expires="+ date;
}
/*
测试: var date = new Date();
date.setDate(date.getDate() + 3);
setCookie1("people1","你好1",date);
*/
//设置(创建、修改)cookie数据
//参数1:键值
//参数2:键名
//参数3:过期时间(可以也可以不写)
function setCookie2(key,value,dateTime){
var cValue = key + "=" + encodeURIComponent(value);
if(dateTime){
cValue = cValue +";expires="+ dateTime;
}
document.cookie = cValue;
}
/*
测试: var date = new Date();
date.setDate(date.getDate() + 3);
setCookie2("people1","你好1",date);
*/
//获取给定键名的键值
//参数:给定cookie的键名
function getCookie(key){
var arr = document.cookie.split("; ");
//console.log(arr);
var keyValue = "";
for(var i = 0; i < arr.length; i++){
if(arr[i].split("=")[0] == key){
keyValue = arr[i].split("=")[1];
break;
}
}
return decodeURIComponent(keyValue);
}
/*
测试: getcookie("people3");
*/
//删除给定键名的键值
//参数:给定cookie的键名
function delcookie(key){
document.cookie = key + "=;expires=" + new Date(0);
}
/*
测试: delcookie("people1");
*/