记录一下项目中遇到的计算购物车商品数量和总价的jQuery代码,重点在于选择器以及.text()命令的使用。
先上效果图,点击加减,商品数量以及总价会发生相应变化。 html
1 <div class="details-right fl">
2 <h2 class="album-name mb20">【独家发售】大张伟2018全新专辑《人间精品》</h2>
3 <ul class="album-info-li">
4 <li><span class="li-name">商城价格</span><strong class="li-price">83.1元</strong>
5 <del class="original-price">83.1元</del>
6 </li>
7 <li><span class="li-name">重量</span><span class="li-info">0.33kg</span></li>
8 <!--<li><span class="li-name">数量</span><span class="li-info"><img src="img/num.jpg"/></span></li>-->
9 <li class="count">
10 <span class="li-name">数量</span>
11 <a href="javascript:void(0);" class="c_sub"> - </a><input id="count-ipt" type="text" value="1"><a href="javascript:void(0);" class="c_add"> + </a>
12 <span class="inventory">库存<i class="in-count">5</i>件</span>
13 </li>
14 </ul>
15 <div class="details-btn-box">
16 <div class="btns mb20">
17 <button class="add-cart"></button>
18 <button class="buy-now"></button>
19 </div>
20 <div><img src="img/zpbz.png"/></div>
21
22 </div>
23 </div>
css
1 .count a {
2 display: inline-block;
3 width: 24px;
4 height: 30px;
5 background: #eaeaea;
6 color: #fff;
7 vertical-align: middle;
8 text-align: center;
9 font-size: 20px;
10 line-height: 25px;
11 cursor: pointer;
12 }
13
14 .count input {
15 width: 42px;
16 height: 28px;
17 border: 1px solid #c9c9c9;
18 color: #333739;
19 vertical-align: middle;
20 text-align: center;
21 font-size: 14px;
22 }
23
24 .count .inventory {
25 margin-left: 15px;
26 color: #999;
27 font-size: 12px;
28 }
29
30 .count .inventory .in-count {
31 color: #666;
32 font-style: normal
33 }
js
$(function () {
$(".c_add").click(function () {
var val = $("#count-ipt").val();
var num = parseInt(val) + 1;
var count = $(".in-count").text();
if (num <= count)
$("#count-ipt").val(num)
})
$(".c_sub").click(function () {
var val = $("#count-ipt").val();
var num = parseInt(val) - 1;
if (num > 0)
$("#count-ipt").val(num)
})
$(".buy-now").click(function () {
var val = $("#count-ipt").val();
var price = parseFloat($(".li-price").text()) * 100;
alert(val * price / 100);
})
})