js面向对象写页面详解编程语言

<!doctype html> 
<html lang="en"> 
 <head> 
  <meta charset="UTF-8"> 
  <meta name="Generator" content="EditPlus®"> 
  <meta name="Author" content=""> 
  <meta name="Keywords" content=""> 
  <meta name="Description" content=""> 
  <title>面向对象</title> 
  <style type="text/css"> 
  ul{ 
  list-style-type:none; 
  padding:0px; 
  margin:0px; 
  } 
  #showCarBox{ 
  width:300px; 
  height:300px; 
  position:absolute; 
  left:530px; 
  top:150px; 
  background:#d2d2d2; 
  text-align:center; 
  } 
  #showCar ul li{ 
    margin:0 auto; 
  } 
  #carJieSuan{ 
  display:none; 
  } 
  #deleteProduct{ 
  display:none; 
  } 
  #carJieSuan{ 
  margin:0 auto; 
  } 
  #collectionList{ 
  position:absolute; 
  left:950px; 
  top:180px; 
   
  } 
  </style> 
 </head> 
 <body> 
 <select  id="collectionList"> 
  
 </select> 
<h2>产品信息</h2> 
<div id="Navigation"> 
<div id="nLeft"> 
</div> 
  <div id="nCenter"> 
	 <a href=""></a> 
	 <a href=""></a> 
	 <a href=""></a> 
	 <a href=""></a> 
	 </div> 
</div> 
<div id="goodShow"> 
<img  alt="商品" id="goodsImg" /> 
<ul id="goodMessage"> 
<li>商品名</li> 
<li>价格</li> 
<li>产地</li> 
<li>尺寸</li> 
</ul> 
</div> 
<input type="button"  value="加入购物车"  id="addCar"/> 
<input type="button" value="立即购买" id="buy" /> 
<input type="button" value="收藏" id="collection" /> 
 
 
<div id="showCarBox"> 
<div id="showCar"> 
<h3>购物车中的商品信息</h3> 
</div> 
<input type="button"  value="结算" id="carJieSuan" /> 
<input type="button" value="删除"  id="deleteProduct" /> 
</div> 
 
 
  <script type="text/javascript"> 
 
  function $(id){ 
  return document.getElementById(id);  
} 
//导航栏对象 
function Navigation(){ 
 
} 
 
Navigation.prototype={ 
 
 
} 
 
  //产品对象 
function Product(imgSrc,name,price,origin,size) 
{    
	//商品图片src 
	this.imgSrc=imgSrc; 
	//商品名字 
    this.name=name; 
	//商品的价格 
    this.price=price; 
	//商品的地址 
    this.origin=origin; 
	//商品的尺寸 
    this.size=size; 
	//与商品有关的元素 
    this.doms={ 
		//收藏按钮 
	collection:$("collection"), 
	//加入购物车按钮 
    addCar:$("addCar"), 
	//购买按钮 
	buy:$("buy"), 
	//商品图片 
	goodsImg:$("goodsImg"), 
	//收藏列表 
	collectionList:$("collectionList") 
	} 
 } 
 
Product.prototype={ 
 
		//加入购物车 
		addCar:function(){ 
        //把产品加入购物车 
	    car.products.push(this); 
       //刷新购物车信息 
        car.bindDom(); 
 
	    alert("成功加入购物车!"); 
		}, 
		//立即购买 
		buy:function(){ 
			 alert("成功购买!"); 
		}, 
		//收藏 
		collection:function(){ 
 
			 
			//获得select里面option元素 
		var opts=this.doms.collectionList.getElementsByTagName("option"); 
		//刚开始没有收藏 所以不存在重复问题 
		if(!opts[0]){ 
		var option=document.createElement("option"); 
		option.src=this.name; 
		option.innerHTML=this.name; 
        this.doms.collectionList.appendChild(option); 
		alert("成功收藏!"); 
		} 
		else{ 
		//循环检查是否有和当前添加商品名字一样的 
		for(var i=0,len=opts.length;i<len;i++){ 
		if(opts[i].innerHTML==this.name){ 
		alert("重复不能添加的了!"); 
		} 
		else{ 
		var option=document.createElement("option"); 
		option.src=this.name; 
		option.innerHTML=this.name; 
        this.doms.collectionList.appendChild(option); 
			alert("成功收藏!"); 
		} 
		} 
        } 
		}, 
//绑定Dom 
bindDom:function(dom){ 
	var str=''; 
    str+='<img src='+this.imgSrc+' />'; 
    str+="<ul>" 
	str+='<li>商品名:'+this.name+'</li>' 
	str+='<li>商品价格:'+this.price+'</li>' 
    str+='<li>商品地址:'+this.origin+'</li>' 
    str+='<li>商品尺寸:'+this.size+'</li>' 
    str+='</ul>'; 
	dom.innerHTML=str; 
}, 
//绑定事件 
bindEvents:function(){ 
  //这里的this指的是实例化的那个对象 
		var that=this; 
		 
  this.doms.addCar.onclick=function(){ 
	  //这里的this指的是dom元素的 所以不能使用addCar 用that保存作用域 
         that.addCar(); 
 
}; 
this.doms.buy.onclick=function(){ 
     that.buy(); 
 
}; 
this.doms.collection.onclick=function(){ 
    that.collection(); 
 
}; 
} 
} 
 
	//购物车对象 
	function Car(){ 
	//产品个数 
	this.product=0; 
	//总价格 
	this.price=0; 
	//产品列表 
	this.products=[]; 
	//与购物车有关的元素 
	this.doms={ 
	//商品展示div 
	showCar:$("showCar"), 
	//结算按钮 
	carJieSuan:$("carJieSuan"), 
	//删除商品按钮 
	deleteProduct:$("deleteProduct") 
 
	}; 
} 
 
Car.prototype={ 
 
//获得购物车中所有商品 
getCarProducts:function(){ 
return $("carMessage").getElementsByTagName("li"); 
}, 
//付款方法 
 needPay:function(){ 
   var sum=0; 
   for(var i=0;i<this.products.length;i++){ 
	   //判断checkBox是否被选中 
	   if($("CB"+i).checked){ 
       sum+=parseInt(this.products[i].price); 
	   } 
   } 
   return sum; 
 }, 
    //删除购物车中商品方法 
deleteProduct:function(){ 
	//获得购物车中所有商品对象 
	var allProducts=this.getCarProducts(); 
	//将购物车中选中的商品清除 
	for(var i=0;i<allProducts.length;i++){ 
    if($("CB"+i).checked){ 
	//删除products中的产品对象 
	 this.products.splice(i,1); 
     allProducts[i].style.display="none"; 
	  alert("成功删除选中的元素"); 
} 
	} 
}, 
//得到购物车中产品数量 
 getSum:function(){ 
 return this.products.length; 
 }, 
//购物车绑定DOM 
bindDom:function(){ 
	var str=""; 
    str+='<ul id="carMessage"><h3>购物车中的信息</h3>'; 
	for(var i=0;i<this.products.length;i++){ 
    str+='<li><input  type="checkBox" id="CB'+i+'"/>'+this.products[i].name+","+this.products[i].size+","+this.products[i].price+'</li>'; 
	} 
	str+='</ul>'; 
	this.doms.carJieSuan.style.display="block"; 
	this.doms.deleteProduct.style.display="block"; 
	this.doms.showCar.innerHTML=str; 
}, 
//购物车绑定事件 
 bindEvents:function(){ 
	var that=this; 
	//购物车结算点击事件 
 this.doms.carJieSuan.onclick=function(){ 
   alert('您成功支付了'+that.needPay()+'元'); 
}; 
//购物车删除选中商品事件 
 this.doms.deleteProduct.onclick=function(){ 
	 that.deleteProduct(); 
 
}; 
} 
 } 
  
var  kuzi=new Product("kuzi.png","欧美西装裤","3500","广州","xl"); 
kuzi.bindDom($("goodShow")); 
kuzi.bindEvents(); 
var car=new Car(); 
car.bindEvents(); 
  </script> 
 </body> 
</html> 

  

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/12291.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论