好程序员web前端教程分享前端javascript练习题三,cookie
一周内免登录
样式代码:
<form action="">
姓名:<input type="text" id="usename"/><br />
密码:<input type="text" i="mima"/><br />
一周内免登陆<input type="checkbox" />
<input type="button" id="btn" value="登录"/><br /></form>
js功能代码:
var input=document.getElementsByTagName("input");
if(getCookie("usename")){ //判端cookie是否有数据
input[0].value=getCookie("usename");
input[1].value=getCookie("password");
input[2].checked=true;
}
input[3].onclick=function(){
if(input[2].checked){
setCookie("usename",input[0].value,1);
setCookie("password",input[1].value,1);
}else{
removeCookie("usename");
removeCookie("password");
}
}
//将函数作为对象的方法进行封装
function setCookie(name,value,n){
var date=new Date();
date.setDate(date.getDate()+n);
//name+"="+value+";"+"expires"+"="+odate;
document.cookie=name+"="+value+";"+"expires"+"="+date;
}
function getCookie(name){
var str=document.cookie;
var arr=str.split(";");
for(var i=0;i<arr.length;i++){
var newArr=arr[i].split("=");
if(newArr[0]==name){
return newArr[1];
}
}
}
function removeCookie(name){
setCookie(name, 11, -2);
}
购物车
产品页面js代码:
<script type="text/javascript">
//商品数据 后台传过来
var data = [{
"id":10001,
"title":"蒙牛",
"price":60,
"imgUrl":"img/photo1.jpg"
},{
"id":10002,
"title":"婚纱照",
"price":19999,
"imgUrl":"img/photo2.jpg"
},{
"id":10003,
"title":"加湿器",
"price":100,
"imgUrl":"img/photo3.jpg"
}];
//生成结构
var oUl = document.getElementById("productList");
var str = "";
for(var i = 0; i < data.length; i++){
str += "<li><img src='"+data[i].imgUrl+"'><p>"+data[i].title+"</p><p>"+data[i].price+"</p><input class='addBtn' type='button' data-id='"+data[i].id+"' value='加入购物车'></li>";
}
oUl.innerHTML = str;
//加入购物车
var cartNum = document.getElementById("cartNum");
var oNum = cartNum.children[0];
var count = 0;
var addBtns = document.getElementsByClassName("addBtn");
//定义一个对象,去保存id和数量 判断cookie里有没有存过数据,有就用,没有就赋值为{}
if(getCookie("cart")){
var obj = JSON.parse(getCookie("cart"));//将json字符串转换成对象的
}else{
var obj = {};
}
//取所有购物车商品数量
for(var i in obj){
count += obj[i];
}
oNum.innerHTML = count;
for(var i = 0; i < addBtns.length; i++){
addBtns[i].onclick = function(){
//存数据时 存id:num cart {"10001":1,"10002":3}
//考虑如果取到加入购物车的商品id
var prodId = this.getAttribute("data-id");
if(obj[prodId]==undefined){
obj[prodId] = 1;
}else{
obj[prodId]++;
}
//把这个对象存到cookie
//console.log(obj);
var objToStr = JSON.stringify(obj);//将js对象(数组,对象)转换成JSON格式的字符串
setCookie("cart",objToStr,7);
//显示购物篮中的数量
oNum.innerHTML = ++count;
}
}</script>
cart页面的js代码:
<script type="text/javascript">
/*var data = [{
"id":10001,
"title":"蒙牛",
"price":60,
"imgUrl":"img/photo1.jpg"
},{
"id":10002,
"title":"婚纱照",
"price":19999,
"imgUrl":"img/photo2.jpg"
},{
"id":10003,
"title":"加湿器",
"price":100,
"imgUrl":"img/photo3.jpg"
}];*/
var data = {"10001":{
"id":10001,
"title":"蒙牛",
"price":60,
"imgUrl":"img/photo1.jpg"
},"10002":{
"id":10002,
"title":"婚纱照",
"price":19999,
"imgUrl":"img/photo2.jpg"
},"10003":{
"id":10003,
"title":"加湿器",
"price":100,
"imgUrl":"img/photo3.jpg"
}};
var oList = document.getElementById("cartList");
var obj = {};
if(getCookie("cart")){
obj = JSON.parse(getCookie("cart"));
}
var str = "";
for(var i in obj){
/*for(var j = 0; j < data.length; j++){
if(i==data[j].id){
str += "<li><img src='"+data[j].imgUrl+"'><span>"+data[j].title+"</span><span>"+data[j].price+"</span><span>"+obj[i]+"</span></li>"
}
}*/
str += "<li><img src='"+data[i].imgUrl+"'><span>"+data[i].title+"</span><span>"+data[i].price+"</span><span>"+obj[i]+"</span></li>"
}
oList.innerHTML = str;
</script>