JavaScript開發購物車...LOGIN

JavaScript開發購物車教學之JS實作功能

用JS設計功能


加減效果

給我們的value="+"以及value="-"各增加一個onclick事件

##< input type="button" value="-" onclick="minus()"/>

<input type="button" value="+" onclick="add ()"/>

在上面<script></script>標籤中加入js程式碼

##//按下+按鈕

function add(){

//取出目前頁面的商品數量

var num=document.getElementById("text").value;

//將數量加一然後再賦值給顯示商品數量的<inpue>中的value屬性

++num;

document.getElementById("text").value=num;

# //取出目前頁面商品的數量,與取出的價格相乘,賦值給小計所屬的div的頁面顯示內容

var price=document.getElementById("price ").innerHTML;

var subtotal=price*num;

document.getElementById("subtotal").innerHTML=price*num ;

}

//按下-按鈕

function minus(){

var num=document.getElementById("text").value;

//判斷商品是不是數量小於1,小於則全部給賦值成0

if(--num<1){

document.getElementById("text").value=0;

}else{

document.getElementById("text").value=num

}

//取出目前頁面的數量,與價格相乘,賦值給小計所屬的div的頁面顯示內容

//給num重新賦值是放置出現num=-1情況

var num=document.getElementById("text").value;

# var price=document.getElementById("price").innerHTML;

document.getElementById("subtotal").innerHTML=price*num;


#################################################' #####}###############程式碼如下:##################
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
 <meta name="format-detection" content="telephone=no" /> 
<title>简易购物车</title>
<meta charset="utf-8" />
<style>	
.shop{
	width:400px;
	background-color:#f0f0f0;
	text-align:center;
}
.shop2{
	text-align:center;
	clear:both;
	border:1px solid black;
    height:21px;
}
.goods{
	float:left;
	width:100px;
}	
.price{
	float:left;
	width:50px;
}	
.number{
	float:left;
	width:110px;
}	
.subtotal{
	float:left;
	width:50px;
	margin-top:2px;
}	
.delete{
	float:left;
	width:35px;
	margin-left:5px;
}	
.text{
	width: 22px;
	text-align:center;
}
</style>
<script >
//按下+按钮
function add(){
	//取出当前页面的数量
	var num=document.getElementById("text").value;
	//将数量加一然后再赋值给显示数量的<inpue>中的value属性
	++num;
	document.getElementById("text").value=num;
	//取出当前页面的数量,与数量相乘,赋值给小计所属的div的页面显示内容
	var price=document.getElementById("price").innerHTML;
	var subtotal=price*num;
	document.getElementById("subtotal").innerHTML=price*num;
}
//按下-按钮
function minus(){
	var num=document.getElementById("text").value;
	//判断数量是不是负数
	if(--num<1){
		document.getElementById("text").value=0;
	}else{
		document.getElementById("text").value=num
		}
	//取出当前页面的数量,与数量相乘,赋值给小计所属的div的页面显示内容
	//给num重新赋值是放置出现num=-1情况
	var num=document.getElementById("text").value;
	var price=document.getElementById("price").innerHTML;
	document.getElementById("subtotal").innerHTML=price*num;
}
</script>
</head>
<body>
	<!--购物车标题-->
	<div class="shop">
		<div class="title">简易购物车</div>
		<div class="goods">商品</div>
		<div class="price">单价</div>
		<div class="number">数量</div>
		<div class="subtotal">小计</div>
		<div class="delete">操作</div>
	</div>
	<!--商品内容-->
	<div class="shop2" id="shop2">
		<form>
		<div class="goods">小米MIX </div>
		<div class="price" id="price">5000</div>
		<div class="number">
			<input type="button" value="-" onclick="minus()"/>
			<input type="text" value="1" class="text" id="text"/>
			<input type="button" value="+" onclick="add()"/>
		</div>
		<div class="subtotal" id="subtotal">5000</div>
		<div class="delete"><a href="#">删除</a></div>
		<form>
	</div>
</body>
</html>
######點擊+和-號,可以實現加減效果,但是當用戶想自己輸入數字的時候,我們還不能讓小計隨之變化,所以還要給id="text"的input添加一個失焦事件,用isNaN ()函數進行判斷,在使用者輸入非數字的情況下,提示使用者############input加入onblur事件#########<input type="text" value="1" class="text" id="text" onblur="change()"/>#########JS程式碼新增############/ /使用者在<input>框中改變數字時,遊標失焦後觸發change()函數 ############function change(){######

//判斷使用者輸入的是否為非數字,是則提醒使用者

# if(isNaN(document.getElementById("text").value)){

alert("請輸入數字");

# document.getElementById("text").value=1;

# }

//取得id="text"的input框的value值

var num= document.getElementById("text").value;

# //取得商品價格

var price=document.getElementById("price" ).innerHTML;

//將小計輸出出去

document.getElementById("subtotal").innerHTML=price*num;

}


#刪除功能

#在刪除<div>裡面設定一個<a>標籤,在div裡綁定一個onclick事件

< div class="delete" onclick="delect('shop2')"><a href="#">刪除</a></div>

#JS程式碼如下

function delect(){

//刪除id= "shop2"的這個div

document.body.removeChild(document.getElementById("shop2"));

#}

至此,兩個功能全部實現,完整程式碼如下:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
 <meta name="format-detection" content="telephone=no" /> 
<title>简易购物车</title>
<meta charset="utf-8" />
<style>	
.shop{
	width:400px;
	background-color:#f0f0f0;
	text-align:center;
}
.shop2{
	text-align:center;
	clear:both;
	border:1px solid black;
    height:21px;
}
.goods{
	float:left;
	width:100px;
}	
.price{
	float:left;
	width:50px;
}	
.number{
	float:left;
	width:110px;
}	
.subtotal{
	float:left;
	width:50px;
	margin-top:2px;
}	
.delete{
	float:left;
	width:35px;
	margin-left:5px;
}	
.text{
	width: 22px;
	text-align:center;
}
</style>
<script >
//按下+按钮
function add(){
	//取出当前页面的数量
	var num=document.getElementById("text").value;
	//将数量加一然后再赋值给显示数量的<inpue>中的value属性
	++num;
	document.getElementById("text").value=num;
	//取出当前页面的数量,与数量相乘,赋值给小计所属的div的页面显示内容
	var price=document.getElementById("price").innerHTML;
	var subtotal=price*num;
	document.getElementById("subtotal").innerHTML=price*num;
}
//按下-按钮
function minus(){
	var num=document.getElementById("text").value;
	//判断数量是不是负数
	if(--num<1){
		document.getElementById("text").value=0;
	}else{
		document.getElementById("text").value=num
		}
	//取出当前页面的数量,与数量相乘,赋值给小计所属的div的页面显示内容
	//给num重新赋值是放置出现num=-1情况
	var num=document.getElementById("text").value;
	var price=document.getElementById("price").innerHTML;
	document.getElementById("subtotal").innerHTML=price*num;
}
//用户在<input>框中改变数字时,光标失焦后触发change()函数	
function change(){
	//判断用户输入的是否为非数字,是则提醒用户
	if(isNaN(document.getElementById("text").value)){
		alert("请输入数字");
		document.getElementById("text").value=1;
	}
	//取得id="text"的input框的value值
	var num=document.getElementById("text").value;
	//取得商品价格
	var price=document.getElementById("price").innerHTML;
	//将小计输出出去
	document.getElementById("subtotal").innerHTML=price*num;
}
function delect(){
	//删除id="shop2"的这个div
	document.body.removeChild(document.getElementById("shop2"));
}
</script>
</head>
<body>
	<!--购物车标题-->
	<div class="shop">
		<div class="title">简易购物车</div>
		<div class="goods">商品</div>
		<div class="price">单价</div>
		<div class="number">数量</div>
		<div class="subtotal">小计</div>
		<div class="delete">操作</div>
	</div>
	<!--商品内容-->
	<div class="shop2" id="shop2">
		<form>
		<div class="goods">小米MIX </div>
		<div class="price" id="price">5000</div>
		<div class="number">
			<input type="button" value="-" onclick="minus()"/>
			<input type="text" value="1" class="text" id="text" onblur="change()"/>
			<input type="button" value="+" onclick="add()"/>
		</div>
		<div class="subtotal" id="subtotal">5000</div>
		<div class="delete" onclick="delect()"><a href="#">删除</a></div>
		<form>
	</div>
</body>
</html>




下一節
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no" /> <title>简易购物车</title> <meta charset="utf-8" /> <style> .shop{ width:400px; background-color:#f0f0f0; text-align:center; } .shop2{ text-align:center; clear:both; border:1px solid black; height:21px; } .goods{ float:left; width:100px; } .price{ float:left; width:50px; } .number{ float:left; width:110px; } .subtotal{ float:left; width:50px; margin-top:2px; } .delete{ float:left; width:35px; margin-left:5px; } .text{ width: 22px; text-align:center; } </style> <script > //按下+按钮 function add(){ //取出当前页面的数量 var num=document.getElementById("text").value; //将数量加一然后再赋值给显示数量的<inpue>中的value属性 ++num; document.getElementById("text").value=num; //取出当前页面的数量,与数量相乘,赋值给小计所属的div的页面显示内容 var price=document.getElementById("price").innerHTML; var subtotal=price*num; document.getElementById("subtotal").innerHTML=price*num; } //按下-按钮 function minus(){ var num=document.getElementById("text").value; //判断数量是不是负数 if(--num<1){ document.getElementById("text").value=0; }else{ document.getElementById("text").value=num } //取出当前页面的数量,与数量相乘,赋值给小计所属的div的页面显示内容 //给num重新赋值是放置出现num=-1情况 var num=document.getElementById("text").value; var price=document.getElementById("price").innerHTML; document.getElementById("subtotal").innerHTML=price*num; } //用户在<input>框中改变数字时,光标失焦后触发change()函数 function change(){ //判断用户输入的是否为非数字,是则提醒用户 if(isNaN(document.getElementById("text").value)){ alert("请输入数字"); document.getElementById("text").value=1; } //取得id="text"的input框的value值 var num=document.getElementById("text").value; //取得商品价格 var price=document.getElementById("price").innerHTML; //将小计输出出去 document.getElementById("subtotal").innerHTML=price*num; } function delect(){ //删除id="shop2"的这个div document.body.removeChild(document.getElementById("shop2")); } </script> </head> <body> <!--购物车标题--> <div class="shop"> <div class="title">简易购物车</div> <div class="goods">商品</div> <div class="price">单价</div> <div class="number">数量</div> <div class="subtotal">小计</div> <div class="delete">操作</div> </div> <!--商品内容--> <div class="shop2" id="shop2"> <form> <div class="goods">小米MIX </div> <div class="price" id="price">5000</div> <div class="number"> <input type="button" value="-" onclick="minus()"/> <input type="text" value="1" class="text" id="text" onblur="change()"/> <input type="button" value="+" onclick="add()"/> </div> <div class="subtotal" id="subtotal">5000</div> <div class="delete" onclick="delect()"><a href="#">删除</a></div> <form> </div> </body> </html>
章節課件