jquery實現(xiàn)購物車功能
更新時間:2021年08月01日 11:59:41 作者:永澤心語
這篇文章主要為大家詳細介紹了jquery實現(xiàn)購物車功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了jquery實現(xiàn)購物車功能的具體代碼,供大家參考,具體內(nèi)容如下
html
<!DOCTYPE html>
<html>
<head>
<title>購物車</title>
<meta charset="utf-8" />
<style type="text/css">
h1 {
text-align: center;
}
table {
margin: 0 auto;
width: 60%;
border: 2px solid #aaa;
border-collapse: collapse;
}
table th, table td {
border: 2px solid #aaa;
padding: 5px;
}
th {
background-color: #eee;
}
</style>
<script src="jquery-3.2.1.min.js"></script>
<script src="gw.js"></script>
</head>
<body>
<h1>真劃算</h1>
<table id="tb1">
<tr>
<th>商品</th>
<th>單價(元)</th>
<th>顏色</th>
<th>庫存</th>
<th>好評率</th>
<th>操作</th>
</tr>
<tr>
<td>羅技M185鼠標</td>
<td>80</td>
<td>黑色</td>
<td>893</td>
<td>98%</td>
<td align="center"><input type="button" value="加入購物車"
onclick="addshoping(this);" /></td>
</tr>
<tr>
<td>微軟X470鍵盤</td>
<td>150</td>
<td>黑色</td>
<td>9028</td>
<td>96%</td>
<td align="center"><input type="button" value="加入購物車"
onclick="addshoping(this);" /></td>
</tr>
<tr>
<td>洛克iphone6手機殼</td>
<td>60</td>
<td>透明</td>
<td>672</td>
<td>99%</td>
<td align="center"><input type="button" value="加入購物車"
onclick="addshoping(this);" /></td>
</tr>
<tr>
<td>藍牙耳機</td>
<td>100</td>
<td>藍色</td>
<td>8937</td>
<td>95%</td>
<td align="center"><input type="button" value="加入購物車"
onclick="addshoping(this);" /></td>
</tr>
<tr>
<td>金士頓U盤</td>
<td>70</td>
<td>紅色</td>
<td>482</td>
<td>100%</td>
<td align="center"><input type="button" value="加入購物車"
onclick="addshoping(this);" /></td>
</tr>
</table>
<h1>購物車</h1>
<table>
<thead>
<tr>
<th>商品</th>
<th>單價(元)</th>
<th>數(shù)量</th>
<th>金額(元)</th>
<th>刪除</th>
</tr>
</thead>
<tbody id="goods">
</tbody>
<tfoot>
<tr>
<td colspan="3" align="right">總計</td>
<td id="total"></td>
<td></td>
</tr>
</tfoot>
</table>
</body>
</html>
js
//添加購物車
function addshoping(btn) {
var name = $(btn).parent().siblings().eq(0).html()
var price = $(btn).parent().siblings().eq(1).html()
var trs = $("#goods tr")
var nameArr = new Array();
$.each(trs, function (index, value) {
nameArr.push($(this).children('td').eq(0).text())
})
var $tr = $('<tr>' +
'<td>' + name + '</td>' +
'<td>' + price + '</td>' +
'<td align="center">' +
'<input type="button" value="-" onclick="jian(this);"/> ' +
'<input type="number" size="3" readonly value="1"/> ' +
'<input type="button" value="+" onclick="increase(this);"/>' +
'</td>' +
'<td>' + price + '</td>' +
'<td align="center"><input type="button" value="x" onclick="del(this);"/></td>' +
'</tr>');
var ishasName = nameArr.indexOf(name)
if (ishasName >= 0) {
var goodcount=trs.eq(ishasName).children('td').eq(2).children().eq(1).val()
Number.parseInt(goodcount);
trs.eq(ishasName).children('td').eq(2).children().eq(1).val(++goodcount)
var price=trs.eq(ishasName).children('td').eq(1).html()
Number.parseInt(price)
trs.eq(ishasName).children('td').eq(3).html(goodcount*price);
} else {
// $tr.insertAfter($("#goods tr:eq(0)"))
$("#goods").append($tr);
}
var kucun = tds.eq(3).html()
Number.parseInt(kucun)
tds.eq(3).html(--kucun)
sum()
}
//增加
function increase(btn){
var num=$(btn).prev().val()
Number.parseInt(num);
var bignew=$(btn).prev().val(++num)
var price = $(btn).parent().prev().html();
$(btn).parent().next().html(num*price);
sum();
};
//減少
function jian(btn){
var num=$(btn).next().val()
if(num<=1){
return;
}
Number.parseInt(--num)
var price = $(btn).parent().prev().html();
var newprice=$(btn).parent().next().html();
$(btn).parent().next().html(newprice-price);
$(btn).next().val(num)
sum()
}
//刪除
function del(btn){
$(btn).parent().parent().remove()
sum();
}
//總和
function sum() {
// 獲取tbody下的所有行
var $trs = $("#goods tr");
// 遍歷他們
var sum = 0;
for (var i = 0; i < $trs.length; i++) {
// 獲取每一行
var $tr = $trs.eq(i);
// 獲取該行中第四列的值(金額)
var mny = $tr.children().eq(3).html();
sum += parseFloat(mny);
}
// 寫入到合計
$("#total").html(sum);
};
運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
jQuery獲取選中內(nèi)容及設(shè)置元素屬性的方法
這篇文章主要介紹了jQuery獲取選中內(nèi)容及設(shè)置元素屬性的方法,需要的朋友可以參考下2014-07-07
jQuery Pagination Ajax分頁插件(分頁切換時無刷新與延遲)中文翻譯版
此jQuery插件為Ajax分頁插件,一次性加載,故分頁切換時無刷新與延遲,如果數(shù)據(jù)量較大不建議用此方法,因為加載會比較慢,接下來詳細介紹使用方法,感興趣的朋友可以了解下2013-01-01

