亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

JavaScript開發(fā)購物車教程之多件商品展示

展示多個商品

上面介紹的例子是展示一個商品,當(dāng)我們將整個class="shop2"的div再復(fù)制一個的時候,就會發(fā)現(xiàn)問題了,無論點(diǎn)擊哪個+或者-,變化的都是第一個商品,這是因為我們的觸發(fā)事件都是針對第一個商品做的,沒有通用性,所以,我們需要改造下我們的例子

首先將函數(shù)里面用到的變量全部以參數(shù)的形式傳遞進(jìn)去

//按下+按鈕

function add(text,price,subtotal){

//取出當(dāng)前頁面的數(shù)量

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

//將數(shù)量加一然后再賦值給顯示數(shù)量的<inpue>中的value屬性

++num;

document.getElementById(text).value=num;

//取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計所屬的div的頁面顯示內(nèi)容

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

var subtotal=price*num;

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

}

//按下-按鈕

function minus(text,price,subtotal){

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

//判斷數(shù)量是不是負(fù)數(shù)

if(--num<1){

document.getElementById(text).value=0;

}else{

document.getElementById(text).value=num

}

//取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計所屬的div的頁面顯示內(nèi)容

//給num重新賦值是放置出現(xiàn)num=-1情況

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

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

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

}

其它兩個函數(shù)也是同理:

//用戶在<input>框中改變數(shù)字時,光標(biāo)失焦后觸發(fā)change()函數(shù)

function change(text,price,subtotal){

//判斷用戶輸入的是否為非數(shù)字,是則提醒用戶

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

alert("請輸入數(shù)字");

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(shop2){

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

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

}

之后再將兩個商品里面的涉及id的,id全部改為不一樣,在觸發(fā)事件時,傳入不同的id值

完整代碼如下

<!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(text,price,subtotal){
	//取出當(dāng)前頁面的數(shù)量
	var num=document.getElementById(text).value;
	//將數(shù)量加一然后再賦值給顯示數(shù)量的<inpue>中的value屬性
	++num;
	document.getElementById(text).value=num;
	//取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計所屬的div的頁面顯示內(nèi)容
	var price=document.getElementById(price).innerHTML;
	var subtotal=price*num;
	document.getElementById(subtotal).innerHTML=price*num;
}
//按下-按鈕
function minus(text,price,subtotal){
	var num=document.getElementById(text).value;
	//判斷數(shù)量是不是負(fù)數(shù)
	if(--num<1){
		document.getElementById(text).value=0;
	}else{
		document.getElementById(text).value=num
		}
	//取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計所屬的div的頁面顯示內(nèi)容
	//給num重新賦值是放置出現(xiàn)num=-1情況
	var num=document.getElementById(text).value;
	var price=document.getElementById(price).innerHTML;
	document.getElementById(subtotal).innerHTML=price*num;
}
//用戶在<input>框中改變數(shù)字時,光標(biāo)失焦后觸發(fā)change()函數(shù)	
function change(text,price,subtotal){
	//判斷用戶輸入的是否為非數(shù)字,是則提醒用戶
	if(isNaN(document.getElementById(text).value)){
		alert("請輸入數(shù)字");
		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(shop2){
	//刪除id="shop"的這個div
	document.body.removeChild(document.getElementById(shop2));
}
</script>
</head>
<body>
	<!--購物車標(biāo)題-->
	<div class="shop">
		<div class="title">簡易購物車</div>
		<div class="goods">商品</div>
		<div class="price">單價</div>
		<div class="number">數(shù)量</div>
		<div class="subtotal">小計</div>
		<div class="delete">操作</div>
	</div>
	<!--商品內(nèi)容-->
	<div class="shop2" id="shop2">
		<form>
		<div class="goods">小米MIX </div>
		<div class="price" id="price2">5000</div>
		<div class="number">
			<input type="button" value="-" onclick="minus('text2','price2','subtotal2')"/>
			<input type="text" value="1" class="text" id="text2" onblur="change('text2','price2','subtotal2')"/>
			<input type="button" value="+" onclick="add('text2','price2','subtotal2')"/>
		</div>
		<div class="subtotal" id="subtotal2">5000</div>
		<div class="delete" onclick="delect('shop2')"><a href="#">刪除</a></div>
		<form>
	</div>
	<div class="shop2" id="shop3">
		<form>
		<div class="goods">iphone 8 </div>
		<div class="price" id="price3">6000</div>
		<div class="number">
			<input type="button" value="-" onclick="minus('text3','price3','subtotal3')"/>
			<input type="text" value="1" class="text" id="text3" onblur="change('text3','price3','subtotal3')"/>
			<input type="button" value="+" onclick="add('text3','price3','subtotal3')"/>
		</div>
		<div class="subtotal" id="subtotal3">5000</div>
		<div class="delete" onclick="delect('shop3')"><a href="#">刪除</a></div>
		<form>
	</div>
</body>
</html>

注:我們的頁面還有很多不完善的地方,比如刷新一下,之前選擇的信息又會變成初始化時候的樣子,沒有記住用戶的選擇,沒有全選的功能,沒有商品圖片的展示等,我們將在下一個版本中完善這些

繼續(xù)學(xué)習(xí)
||
<!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(text,price,subtotal){ //取出當(dāng)前頁面的數(shù)量 var num=document.getElementById(text).value; //將數(shù)量加一然后再賦值給顯示數(shù)量的<inpue>中的value屬性 ++num; document.getElementById(text).value=num; //取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計所屬的div的頁面顯示內(nèi)容 var price=document.getElementById(price).innerHTML; var subtotal=price*num; document.getElementById(subtotal).innerHTML=price*num; } //按下-按鈕 function minus(text,price,subtotal){ var num=document.getElementById(text).value; //判斷數(shù)量是不是負(fù)數(shù) if(--num<1){ document.getElementById(text).value=0; }else{ document.getElementById(text).value=num } //取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計所屬的div的頁面顯示內(nèi)容 //給num重新賦值是放置出現(xiàn)num=-1情況 var num=document.getElementById(text).value; var price=document.getElementById(price).innerHTML; document.getElementById(subtotal).innerHTML=price*num; } //用戶在<input>框中改變數(shù)字時,光標(biāo)失焦后觸發(fā)change()函數(shù) function change(text,price,subtotal){ //判斷用戶輸入的是否為非數(shù)字,是則提醒用戶 if(isNaN(document.getElementById(text).value)){ alert("請輸入數(shù)字"); 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(shop2){ //刪除id="shop"的這個div document.body.removeChild(document.getElementById(shop2)); } </script> </head> <body> <!--購物車標(biāo)題--> <div class="shop"> <div class="title">簡易購物車</div> <div class="goods">商品</div> <div class="price">單價</div> <div class="number">數(shù)量</div> <div class="subtotal">小計</div> <div class="delete">操作</div> </div> <!--商品內(nèi)容--> <div class="shop2" id="shop2"> <form> <div class="goods">小米MIX </div> <div class="price" id="price2">5000</div> <div class="number"> <input type="button" value="-" onclick="minus('text2','price2','subtotal2')"/> <input type="text" value="1" class="text" id="text2" onblur="change('text2','price2','subtotal2')"/> <input type="button" value="+" onclick="add('text2','price2','subtotal2')"/> </div> <div class="subtotal" id="subtotal2">5000</div> <div class="delete" onclick="delect('shop2')"><a href="#">刪除</a></div> <form> </div> <div class="shop2" id="shop3"> <form> <div class="goods">iphone 8 </div> <div class="price" id="price3">6000</div> <div class="number"> <input type="button" value="-" onclick="minus('text3','price3','subtotal3')"/> <input type="text" value="1" class="text" id="text3" onblur="change('text3','price3','subtotal3')"/> <input type="button" value="+" onclick="add('text3','price3','subtotal3')"/> </div> <div class="subtotal" id="subtotal3">5000</div> <div class="delete" onclick="delect('shop3')"><a href="#">刪除</a></div> <form> </div> </body> </html>
提交重置代碼