最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jquery實(shí)現(xiàn)購物車基本功能

 更新時(shí)間:2019年10月25日 14:27:02   作者:smile@qingqing  
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)購物車基本功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

購物車?yán)锏墓δ軣o非是商品數(shù)量的加減、商品刪除、全選反選等操作,其實(shí)現(xiàn)過程如下所示:

1.html代碼:

<body>
 <div class="empty">
 購物車空空如也,<a href="javascript:void(0);" >快去選購吧</a>
 </div>
 <table border="2px solid #ccc" id="table">
 <thead>
 <th>
 <input type="checkbox" class="checkOnly" style="vertical-align:middle;margin-right:20px;">全選
 </th>
 <th>序號</th>
 <th>商品名稱</th>
 <th>數(shù)量</th>
 <th>單價(jià)</th>
 <th>小計(jì)</th>
 <th>操作</th>
 </thead>
 <tbody>
 <tr>
 <td>
 <input type="checkbox" class="check">
 </td>
 <td class="num">1</td>
 <td>烤煎餅</td>
 <td>
 <span>
 <input type="button" value="-" class="reduces">
 <span class="span">1</span>
 <input type="button" value="+" class="adds">
 </span>
 </td>
 <td>單價(jià):
 <span class="price">2</span>
 </td>
 <td>
 小計(jì):
 <span class="prices">2</span>
 </td>
 <td>
 <a href="#" class="del">刪除</a>
 </td>
 </tr>
 <tr>
 <td>
 <input type="checkbox" class="check">
 </td>
 <td class="num">2</td>
 <td>珍珠奶茶</td>
 <td>
 <span>
 <input type="button" value="-" class="reduces">
 <span class="span">1</span>
 <input type="button" value="+" class="adds">
 </span>
 </td>
 <td>單價(jià):
 <span class="price">4</span>
 </td>
 <td>
 小計(jì):
 <span class="prices">4</span>
 </td>
 <td>
 <a href="#" class="del">刪除</a>
 </td>
 </tr>
 <tr>
 <td>
 <input type="checkbox" class="check">
 </td>
 <td class="num">3</td>
 <td>水煮魚</td>
 <td>
 <span>
 <input type="button" value="-" class="reduces">
 <span class="span">1</span>
 <input type="button" value="+" class="adds">
 </span>
 </td>
 <td>單價(jià):
 <span class="price">20</span>
 </td>
 <td>
 小計(jì):
 <span class="prices">20</span>
 </td>
 <td>
 <a href="#" class="del">刪除</a>
 </td>
 </tr>
 <tr>
 <td>
 <input type="checkbox" class="check">
 </td>
 <td class="num">4</td>
 <td>蛋糕</td>
 <td>
 <span>
 <input type="button" value="-" class="reduces">
 <span class="span">1</span>
 <input type="button" value="+" class="adds">
 </span>
 </td>
 <td>單價(jià):
 <span class="price">50</span>
 </td>
 <td>
 小計(jì):
 <span class="prices">50</span>
 </td>
 <td>
 <a href="#" class="del">刪除</a>
 </td>
 </tr>
 <tr>
 <td>
 <input type="checkbox" class="check">
 </td>
 <td class="num">5</td>
 <td>土豆片</td>
 <td>
 <span>
 <input type="button" value="-" class="reduces">
 <span class="span">1</span>
 <input type="button" value="+" class="adds">
 </span>
 </td>
 <td>單價(jià):
 <span class="price">5</span>
 </td>
 <td>
 小計(jì):
 <span class="prices">5</span>
 </td>
 <td>
 <a href="#" class="del">刪除</a>
 </td>
 </tr>
 <tr>
 <td>
 <input type="checkbox" class="check">
 </td>
 <td class="num">6</td>
 <td>蛋黃派</td>
 <td>
 <span>
 <input type="button" value="-" class="reduces">
 <span class="span">1</span>
 <input type="button" value="+" class="adds">
 </span>
 </td>
 <td>單價(jià):
 <span class="price">5.5</span>
 </td>
 <td>
 小計(jì):
 <span class="prices">5.5</span>
 </td>
 <td>
 <a href="#" class="del">刪除</a>
 </td>
 </tr>
 <tr>
 <td colspan="7" class="talast">
 <span>商品一共
 <span class="goods_num" style="color:red;font-size:20px;">0</span> 件; 共計(jì)花費(fèi)
 <span class="pricetal" style="color:red;font-size:20px;">0</span> 元; 其中最貴的商品單價(jià)是
 <span class="pricest" style="color:red;font-size:20px;">0</span> 元</span>
 </td>
 </tr>
 </tbody>
 </table>
</body>

2.css代碼:

<style type="text/css">
 table {
 width: 1000px;
 /* height: 300px; */
 border-collapse: collapse;
 table-layout: fixed;
 text-align: center;
 font-size: 18px;
 margin: 0 auto;
 }

 a {
 text-decoration: none;
 color: black;
 }

 tr {
 height: 50px;
 }

 .check {
 width: 20px;
 height: 20px;
 }

 .checkOnly {
 width: 20px;
 height: 20px;
 }

 .empty {
 font-size: 25px;
 position: fixed;
 top: 45%;
 left: 45%;
 display: none;
 }

 .empty a {
 color: pink;
 }

 .empty a:hover {
 text-decoration: underline;
 }
 </style>

3.js代碼:

<script src="js/jquery-1.8.3.min.js"></script> //引入jquery
<script src="js/Allcheck.js"></script> //引入封裝好的全選反選插件
<script>
 $(function () {
 $(".adds").each(function () { //點(diǎn)擊增加的按鈕
 $(this).click(function () {
 //1.改變數(shù)量 
 var count = parseFloat($(this).parents("tr").find(".span").html());
 count++;
 $(this).parent("span").find(".span").html(count);
 //2.改小計(jì)(先找到單價(jià)與數(shù)量,再相乘,最后放在小計(jì)(“.prices”)里)
 var price = parseFloat($(this).parents("tr").find(".price").html());
 var money = (price * count);
 $(this).parents("tr").find(".prices").html(money);
 //3.改總價(jià)
 total();
 countAll();//最后的總數(shù)量
 compare();//選中復(fù)選框時(shí)比較商品單價(jià)中最高的
 });
 });
 $(".reduces").each(function () {//點(diǎn)擊減少的按鈕
 $(this).click(function () {
 //1.改變數(shù)量 
 var count = parseFloat($(this).parents("tr").find(".span").html());
 count--;
 if (count < 1) { //當(dāng)數(shù)量減到1時(shí)不能再減
 return;
 }
 $(this).parent("span").find(".span").html(count);
 //2.改小計(jì)
 var price = parseFloat($(this).parents("tr").find(".price").html());
 var money = (price * count);
 $(this).parents("tr").find(".prices").html(money);
 total();
 countAll();//最后的總數(shù)量
 compare();//選中復(fù)選框時(shí)比較商品單價(jià)中最高的
 });
 });
 //刪除
 $(".del").each(function () {
 $(this).click(function () {
 let re = $(this).parents("tr"); //找到要?jiǎng)h除的行
 if (confirm("你確定刪除嗎?")) {
 re.remove();
 }
 total();
 countAll(); //總數(shù)量
 compare(); //最貴的
 //刪除后重新排序號
 for (let i = 0; i < $(".num").length; i++) {
 $(".num")[i].innerHTML = i + 1;
 }
 //全都刪除時(shí)清空table(通過獲取tbody的高度來判斷)
 let clear = $("tbody").height();
 if (clear == 50) {
 $("table").remove();
 $(".empty").css({ //刪完時(shí)顯示"購物車為空"這個(gè)盒子
 display: "block"
 });
 }
 });
 });
 //合計(jì)
 function total() {
 let sum = 0;
 $(".prices").each(function () {//先循環(huán)每個(gè)小計(jì)
 if (($(this).parents("tr").find(".check")).prop("checked")) {//判斷復(fù)選框有沒有選中
 sum += parseFloat($(this).html());
 }
 $(".pricetal").html(sum);
 });
 }
 //總數(shù)量
 function countAll() {
 let counts = 0;
 for(let i=0;i<$(".check").length;i++){
 if($(".check")[i].checked==true){ //注意此塊用jquery不好實(shí)現(xiàn)
 counts+=parseInt( $('.span')[i].innerHTML);
 }
 } 
 $(".goods_num")[0].innerHTML=counts;
 }
 //最貴商品比較
 function compare() {
 let temp = 0;
 for (let i = 0; i < $(".price").length; i++) { //循環(huán)單價(jià)
 if($(".check")[i].checked==true){
 var temps = parseFloat($(".price")[i].innerHTML);
 if (temps > temp) {
 temp = temps;
 }
 }
 };
 $(".pricest").html(temp);
 }
 //全選插件(引入插件Allcheck.js)
 $(".checkOnly").bindCheck($("#table :checkbox"));
 //當(dāng)點(diǎn)擊復(fù)選框時(shí)調(diào)用total()
 $(".check").each(function (){
 $(this).click(function () {
 let num = 0;
 $(".check").each(function () {
 if ($(this).prop("checked")) {
 num++; 
 }
 countAll(); 
 total();
 compare(); //最貴的
 });
 if(num == $(".check").length){//如果復(fù)選框的長度與num相等時(shí),全選那個(gè)按鈕也會(huì)被選中
 $(".checkOnly")[0].checked = true;
 compare(); //最貴的
 countAll(); //總數(shù)量
 total();
 }else{
 $(".checkOnly")[0].checked = false;
 }
 });
 });
 $(".checkOnly").click(function () {
 total();
 countAll(); //總數(shù)量
 compare(); //最貴的
 });
 });
</script>

補(bǔ)充上面js代碼中用到的全選反選插件 \color{red}{補(bǔ)充上面js代碼中用到的全選反選插件}補(bǔ)充上面js代碼中用到的全選反選插件

//1、定義全選的插件
jQuery.fn.extend({
 bindCheck:function($subCheckBox,$btnUncheck){
 let $allCheckBox = this;
 //1、給全選復(fù)選框綁定click事件
 //this:是全選復(fù)選框(jQuery對象)
 this.click(function(){
 let isChecked = this.checked;
 $subCheckBox.each(function(){
 this.checked = isChecked;
 });
 });
 //2、給反選
 if(arguments.length==2){
 $btnUncheck.click(function(){
 $subCheckBox.each(function(){
 this.checked = !this.checked;
 });
 reversCheck();
 });
 }
 //3、給每個(gè)選擇項(xiàng)的復(fù)選框綁定事件
 $subCheckBox.click(function(){
 reversCheck();
 });
 function reversCheck(){
 //1、判斷是否全部的復(fù)選框被選中
 let isAllChecked = true;
 $subCheckBox.each(function(){
 if(!this.checked){
 isAllChecked = false;
 }
 });
 //2、處理全選復(fù)選框
 $allCheckBox.attr("checked",isAllChecked);
 }
 }
});

效果如下圖所示:

以上就是一個(gè)功能比較完整的購物車,有問題或者建議歡迎指出。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Jquery異步上傳文件代碼實(shí)例

    Jquery異步上傳文件代碼實(shí)例

    這篇文章主要介紹了Jquery異步上傳文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • jquery.validate 自定義驗(yàn)證方法及validate相關(guān)參數(shù)

    jquery.validate 自定義驗(yàn)證方法及validate相關(guān)參數(shù)

    jquery.validate是一個(gè)基于jquery的非常優(yōu)秀的驗(yàn)證框架,我們可以通過它迅速驗(yàn)證一些常見的輸入,并且可以自己擴(kuò)充自己的驗(yàn)證方法,而且對國際化也有非常好的支持,通過本文給大家介紹jquery.validate 自定義驗(yàn)證方法及validate相關(guān)參數(shù),需要的朋友一起學(xué)習(xí)吧
    2016-01-01
  • jquery傳參及獲取方式(兩種方式)

    jquery傳參及獲取方式(兩種方式)

    這篇文章主要介紹了jquery傳參及獲取方式,本文給大家兩種方式,通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • jQuery解析json數(shù)據(jù)實(shí)例分析

    jQuery解析json數(shù)據(jù)實(shí)例分析

    這篇文章主要介紹了jQuery解析json數(shù)據(jù)的具體實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery解析json格式數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • jQuery插件開發(fā)基礎(chǔ)簡單介紹

    jQuery插件開發(fā)基礎(chǔ)簡單介紹

    jquery插件開發(fā)基礎(chǔ):開發(fā)jQuery 插件的基本格式,開發(fā)全局函數(shù)的基本格式,接下來為您詳細(xì)介紹,感興趣的朋友可以了解哦
    2013-01-01
  • jquery 插件學(xué)習(xí)(二)

    jquery 插件學(xué)習(xí)(二)

    除了全局函數(shù)外,jquery中的大多數(shù)插件都是通過jquery對象的方法提供的
    2012-08-08
  • jQuery實(shí)現(xiàn)的超簡單輪播圖功能示例【代碼解釋】

    jQuery實(shí)現(xiàn)的超簡單輪播圖功能示例【代碼解釋】

    這篇文章主要介紹了jQuery實(shí)現(xiàn)的超簡單輪播圖功能,結(jié)合完整實(shí)例形式分析了基于jQuery實(shí)現(xiàn)的輪播圖相關(guān)功能實(shí)現(xiàn)、樣式設(shè)置與注意事項(xiàng),需要的朋友可以參考下
    2023-05-05
  • 最新評論

    康保县| 霍州市| 杂多县| 江达县| 郧西县| 西城区| 淮安市| 景洪市| 五华县| 科技| 石狮市| 桦南县| 双柏县| 九台市| 清新县| 石柱| 府谷县| 光山县| 礼泉县| 麻城市| 桂阳县| 凌云县| 岚皋县| 攀枝花市| 翁源县| 荥阳市| 桐庐县| 民和| 称多县| 高尔夫| 六枝特区| 同德县| 长春市| 抚宁县| 巴马| 吉安市| 方正县| 永善县| 南昌市| 凉城县| 周口市|