Js 基础学习之--模拟加入购物车

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");
  */



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值