jQuery實現(xiàn)購物車
本文實例為大家分享了jQuery實現(xiàn)購物車的具體代碼,供大家參考,具體內(nèi)容如下
1.描述
/* ? ? ? ? 描述: ? ? ? ? ? ? 1.點擊減號,input值自減,更新小計,更新總計 ? ? ? ? ? ? 2.點擊加號,input值自加,更新小計,更新總計 ? ? ? ? ? ? 3.點擊全選 設置li中的復選框按鈕狀態(tài)都為被選中狀態(tài) ? ? ? ? ? ? 4.點擊反選 本來被選中的復選框設為未選中,未選中的設為選中 ? ? ? ? ? ? 5.點擊每一個復選按鈕,更新總計 ? ? ? ? ? ? 6.函數(shù)getAll用于設置總計 */
2.HTML布局
<div> ? ? ? ? <button>全選</button><button>反選</button> ? ? ? ? <ul> ? ? ? ? ? ? <li> ? ? ? ? ? ? ? ? <input type="checkbox" name="" id=""> ? ? ? ? ? ? ? ? 商品1 單價 <i>9.99</i> ? ? ? ? ? ? ? ? <button class="cut">-</button> <input type="text" value="0"> <button class="add">+</button> ? ? ? ? ? ? ? ? 小計: <span>0.00</span> ? ? ? ? ? ? </li> ? ? ? ? ? ? <li> ? ? ? ? ? ? ? ? <input type="checkbox" name="" id=""> ? ? ? ? ? ? ? ? 商品1 單價 <i>19.99</i> ? ? ? ? ? ? ? ? <button class="cut">-</button> <input type="text" value="0"> <button class="add">+</button> ? ? ? ? ? ? ? ? 小計: <span>0.00</span> ? ? ? ? ? ? </li> ? ? ? ? ? ? <li> ? ? ? ? ? ? ? ? <input type="checkbox" name="" id=""> ? ? ? ? ? ? ? ? 商品1 單價 <i>99.99</i> ? ? ? ? ? ? ? ? <button class="cut">-</button> <input type="text" value="0"> <button class="add">+</button> ? ? ? ? ? ? ? ? 小計: <span>0.00</span> ? ? ? ? ? ? </li> ? ? ? ? ? ? <li> ? ? ? ? ? ? ? ? <input type="checkbox" name="" id=""> ? ? ? ? ? ? ? ? 商品1 單價 <i>999.99</i> ? ? ? ? ? ? ? ? <button class="cut">-</button> <input type="text" value="0"> <button class="add">+</button> ? ? ? ? ? ? ? ? 小計: <span>0.00</span> ? ? ? ? ? ? </li> ? ? ? ? </ul> ? ? ? ? <p>一共0件商品, 共計 0.00 元</p> </div>
3.引入jQuery文件
<script src="js/jquery.js"></script>
4.購物車實現(xiàn)
4.1 點擊減號,input值自減,更新小計 小計:單價*數(shù)量
$('.cut').click(function () { ? ? ? ? // 獲取對應輸入框的值 ? ? ? ? var num = $(this).next(':text').val(); ? ? ? ? // console.log(num); ? ? ? ? if (num > 0) { ? ? ? ? ? ? // 自減 ? ? ? ? ? ? num--; ? ? ? ? } ? ? ? ? // 更新輸入框的值 ? ? ? ? $(this).next(':text').val(num); ? ? ? ? // 小計 ? ? ? ? var add = Number($(this).prev().text() * num).toFixed(2); ? ? ? ? $(this).nextAll('span').text(add); ? ? ? ? ? getAll(); // 總計 ? ? });?
4.2. 點擊加號,input值加1,更新小計 小計:單價*數(shù)量
$('.add').click(function () { ? ? ? ? // 獲取對應輸入框的值 ? ? ? ? var num = $(this).prev().val(); ? ? ? ? // 自加 ? ? ? ? num++; ? ? ? ? // 更新輸入框的值 ? ? ? ? $(this).prev().val(num); ? ? ? ? // 小計 ? ? ? ? var add = Number($(this).siblings('i').text() * num).toFixed(2); ? ? ? ? $(this).nextAll('span').text(add); ? ? ? ? ? getAll(); // 總計 ? ? ? });
4.3 點擊全選 將li中的復選按鈕都設置成被選中狀態(tài) 更新總計
?$('button').eq(0).click(function () { ? ? ? ? // 所有的復選按鈕的都選中 ? ? ? ? $(':checkbox').prop('checked', true); ? ? ? ? ? getAll(); // 總計 ? ? });
4.4 點擊反選 本來被選中的復選框設為未選中,未選中的設為選中 更新總計
$('button').eq(1).click(function () { ? ? ? ? // 遍歷每一個復選框 ? ? ? ? $(':checkbox').each(function (i, v) { ? ? ? ? ? ? // console.log(!v.cheacked); ? ? ? ? ? ? // $(v).prop('checked',!v.checked) ? ? ? ? ? ? // checked屬性進行取反 ? ? ? ? ? ? v.checked = !v.checked; ? ? ? ? }); ? ? ? ? ? getAll(); // 總計 ? ? });
4.5 點擊每一個復選按鈕,更新總計
$(':checkbox').click(getAll);
4.6 函數(shù)getAll用于設置總計
function getAll() { ? ? ? ? // 定義變量,分別用于存總數(shù)和總價 ? ? ? ? var sum = 0; ? ? ? ? var allnum = 0; ? ? ? ? // 所有被選中的復選框 ? ? ? ? var t = $(':checkbox:checked').each(function (i, v) { ? ? ? ? ? ? // console.log(Number($(v).nextAll('span').text())); ? ? ? ? ? ? // 所有被選中的復選框小計的總和 ? ? ? ? ? ? sum += Number($(v).nextAll('span').text()); ? ? ? ? ? ? //所有被選中的復選框的輸入框值的總和 ? ? ? ? ? ? allnum += Number($(v).nextAll(':text').val()); ? ? ? ? }); ? ? ? ? // 設置p的內(nèi)容 ? ? ? ? $('p').html('<p>一共' + allnum + '件商品, 共計 ' + sum.toFixed(2) + ' 元</p>'); ? ? }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jquery 實現(xiàn)input輸入什么div圖層顯示什么
這篇文章主要介紹jquery實現(xiàn)input輸入什么div圖層顯示什么的具體過程,需要的朋友可以參考下2014-06-06jQuery中select與datalist制作下拉菜單時的區(qū)別淺析
一般我們通常使用select制作下拉菜單,但是H5之后,datalist也可以充當select的角色,而且兩者還有一點小的不同。具體區(qū)別詳解小編通過本文給簡單介紹下2016-12-12jQuery中數(shù)據(jù)緩存$.data的用法及源碼完全解析
這篇文章主要介紹了jQuery中的數(shù)據(jù)緩存$.data的用法及源碼完全解析,深入解讀了jQuery對緩存對象的讀寫和移除的實現(xiàn),需要的朋友可以參考下2016-04-04