JavaScript開發(fā)購物車教學(xué)之JS實(shí)作功能
用JS設(shè)計(jì)功能
加減效果
給我們的value="+"以及value="-"各增加一個onclick事件
##< input type="button" value="-" onclick="minus()"/>
<input type="button" value="+" onclick="add ()"/>
在上面<script></script>標(biāo)籤中加入js程式碼
##//按下+按鈕function add(){
//取出目前頁面的商品數(shù)量
var num=document.getElementById("text").value;
//將數(shù)量加一然後再賦值給顯示商品數(shù)量的<inpue>中的value屬性
++num;
document.getElementById("text").value=num;
# //取出目前頁面商品的數(shù)量,與取出的價(jià)格相乘,賦值給小計(jì)所屬的div的頁面顯示內(nèi)容
var price=document.getElementById("price ").innerHTML;
var subtotal=price*num;
document.getElementById("subtotal").innerHTML=price*num ;
}
//按下-按鈕
function minus(){
var num=document.getElementById("text").value;
//判斷商品是不是數(shù)量小於1,小於則全部給賦值成0
if(--num<1){
document.getElementById("text").value=0;
}else{
document.getElementById("text").value=num
}
//取出目前頁面的數(shù)量,與價(jià)格相乘,賦值給小計(jì)所屬的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;
#################################################' #####}###############程式碼如下:##################
<!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(){ //取出當(dāng)前頁面的數(shù)量 var num=document.getElementById("text").value; //將數(shù)量加一然后再賦值給顯示數(shù)量的<inpue>中的value屬性 ++num; document.getElementById("text").value=num; //取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計(jì)所屬的div的頁面顯示內(nèi)容 var price=document.getElementById("price").innerHTML; var subtotal=price*num; document.getElementById("subtotal").innerHTML=price*num; } //按下-按鈕 function minus(){ 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ù)量相乘,賦值給小計(jì)所屬的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; } </script> </head> <body> <!--購物車標(biāo)題--> <div class="shop"> <div class="title">簡易購物車</div> <div class="goods">商品</div> <div class="price">單價(jià)</div> <div class="number">數(shù)量</div> <div class="subtotal">小計(jì)</div> <div class="delete">操作</div> </div> <!--商品內(nèi)容--> <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>######點(diǎn)擊+和-號,可以實(shí)現(xiàn)加減效果,但是當(dāng)用戶想自己輸入數(shù)字的時(shí)候,我們還不能讓小計(jì)隨之變化,所以還要給id="text"的input添加一個失焦事件,用isNaN ()函數(shù)進(jìn)行判斷,在使用者輸入非數(shù)字的情況下,提示使用者############input加入onblur事件#########<input type="text" value="1" class="text" id="text" onblur="change()"/>#########JS程式碼新增############/ /使用者在<input>框中改變數(shù)字時(shí),遊標(biāo)失焦後觸發(fā)change()函數(shù) ############function change(){######
//判斷使用者輸入的是否為非數(shù)字,是則提醒使用者
# if(isNaN(document.getElementById("text").value)){
alert("請輸入數(shù)字");
# document.getElementById("text").value=1;
# }
//取得id="text"的input框的value值
var num= document.getElementById("text").value;
# //取得商品價(jià)格
var price=document.getElementById("price" ).innerHTML;
//將小計(jì)輸出出去
document.getElementById("subtotal").innerHTML=price*num;
}
#刪除功能
#在刪除<div>裡面設(shè)定一個<a>標(biāo)籤,在div裡綁定一個onclick事件
< div class="delete" onclick="delect('shop2')"><a href="#">刪除</a></div>
#JS程式碼如下
function delect(){
//刪除id= "shop2"的這個div
document.body.removeChild(document.getElementById("shop2"));
#}
至此,兩個功能全部實(shí)現(xiàn),完整程式碼如下:
<!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(){ //取出當(dāng)前頁面的數(shù)量 var num=document.getElementById("text").value; //將數(shù)量加一然后再賦值給顯示數(shù)量的<inpue>中的value屬性 ++num; document.getElementById("text").value=num; //取出當(dāng)前頁面的數(shù)量,與數(shù)量相乘,賦值給小計(jì)所屬的div的頁面顯示內(nèi)容 var price=document.getElementById("price").innerHTML; var subtotal=price*num; document.getElementById("subtotal").innerHTML=price*num; } //按下-按鈕 function minus(){ 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ù)量相乘,賦值給小計(jì)所屬的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ù)字時(shí),光標(biāo)失焦后觸發(fā)change()函數(shù) function change(){ //判斷用戶輸入的是否為非數(shù)字,是則提醒用戶 if(isNaN(document.getElementById("text").value)){ alert("請輸入數(shù)字"); document.getElementById("text").value=1; } //取得id="text"的input框的value值 var num=document.getElementById("text").value; //取得商品價(jià)格 var price=document.getElementById("price").innerHTML; //將小計(jì)輸出出去 document.getElementById("subtotal").innerHTML=price*num; } function delect(){ //刪除id="shop2"的這個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">單價(jià)</div> <div class="number">數(shù)量</div> <div class="subtotal">小計(jì)</div> <div class="delete">操作</div> </div> <!--商品內(nèi)容--> <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>