js实现商城购物车的部分功能

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>当当网购物车页面</title>
    <link href="css/global.css" rel="stylesheet" type="text/css" />
    <link href="css/layout.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="js/shopping.js"></script>
</head>
<script type="text/javascript">
    //鼠标放到商品栏,商品栏的背景变色
    onload=function(){
        var shopping_product_list=document.querySelectorAll(".shopping_product_list");
        //在这个地方只能用这种for循环,不能使用for...in
        for(var i=0;i<shopping_product_list.length;i++){
            shopping_product_list[i].onmouseover=function(){
                //这里只能使用this代替shopping_product_list[i],直接使用shopping_product_list[i]会报错,
                //因为在页面加载完成后,i的取值为最后一个,无论鼠标放哪,都是最后一个商品的背景变色。
                this.style.backgroundColor="red";
            }
            shopping_product_list[i].onmouseout=function(){
                this.style.backgroundColor="#fefbf2";
            }


            //通过class来查找元素,实现购物车删除商品功能
            //直接在父类shopping_product_list[i]中查找a标签
            var a=shopping_product_list[i].querySelector(".shopping_product_list_6 a");
            a.onclick=function(){
                var flag=confirm("确定要删除该商品?");
                if(!flag){
                    return;
                }
            //在这里this代表的是a标签,而我们要删除的是整个tr行,所以要先查询tr的父类,再通过父类删除tr
                var tr=this.parentNode.parentNode;
                tr.parentNode.removeChild(tr);
            }
            //当商品数量发生变化时,也要使相应金额产生变化,因此,给数量列添加事件
            shopping_product_list[i].querySelector("input").onchange=function(){
                countTotalPrice();
            }
        }
        countTotalPrice();
    }

    //实现购物车中删除商品的功能,这里是通过id来查找元素实现
    <!--function deleteProduct(id){-->
        <!--var myConfirm=confirm("是否要删除该商品");-->
        <!--if(!myConfirm){-->
            <!--return;-->
        <!--}-->
        <!--//需要删除的目标定义为target,但不能直接对target进行删除,要通过它的父节点来删除子节点(即其本身)。-->
        <!--var target=document.getElementById(id);-->
        <!--target.parentNode.removeChild(target);-->
    <!--}-->

    //计算购物车,物品总金额、总积分和总节省金额
    function countTotalPrice(){
        var totalPrice=0;
        var totalScores=0;
        var totalSaved=0;
        var shopping_product_list=document.querySelectorAll(".shopping_product_list");
        for(var i=0;i<shopping_product_list.length;i++){
            var score=shopping_product_list[i].querySelector(".shopping_product_list_2 label").innerText;
            var marketingPrice=shopping_product_list[i].querySelector(".shopping_product_list_3 label").innerText;
            var ddPrice=shopping_product_list[i].querySelector(".shopping_product_list_4 label").innerText;
            var amount=shopping_product_list[i].querySelector(".shopping_product_list_5 input").value;
            totalPrice+=parseFloat(ddPrice)*amount;
            totalScores+=parseFloat(score)*amount;
            totalSaved+=(parseFloat(marketingPrice)-parseFloat(ddPrice))*amount;
        }
        totalPrice+=priceProcess(totalPrice)*amount;
        totalScores+=priceProcess(totalScores)*amount;
        totalSaved+=priceProcess(totalSaved)*amount;
        var product_total=document.getElementById("product_total");
        product_total.innerText=totalPrice;
        var product_save=document.getElementById("product_save");
        product_save.innerText=totalSaved;
        var product_integral=document.getElementById("product_integral");
        product_integral.innerText=totalScores;
        //得到了总的价格、节省金额、积分后还需要在onload中调用
    }
    //由于js中的float计算是不精确的,后面小数很多,需要去掉部分小数
    function priceProcess(num){
        return parseInt(num*100)/100;
    }
</script>
<body>
<div id="header"><iframe src="header.html" height="155px" width="960px" frameborder="0"></iframe></div>
<!--中间部分开始-->
<div id="main">
    <div>&nbsp;&nbsp;<img src="images/shopping_myshopping.gif" alt="shopping"> <a href="#">全场免运费活动中</a></div>
    <!--为您推荐商品开始-->
    <div class="shopping_commend">
        <div class="shopping_commend_left">根据您挑选的商品,当当为您推荐</div>
        <div class="shopping_commend_right"><img src="images/shopping_arrow_up.gif" alt="shopping" id="shopping_commend_arrow" onClick="shopping_commend_show()"></div>
    </div>
    <div id="shopping_commend_sort">
        <div class="shopping_commend_sort_left">
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">JavaScript DOM编程艺术</a></li>
                <li class="shopping_commend_list_2">¥39.00</li>
                <li class="shopping_commend_list_3">¥29.30</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">解禁(当当网独家首发)</a></li>
                <li class="shopping_commend_list_2">¥28.00</li>
                <li class="shopping_commend_list_3">¥19.40</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">地王之王(金融危机下房地产行...</a></li>
                <li class="shopping_commend_list_2">¥32.80</li>
                <li class="shopping_commend_list_3">¥25.10</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">逃庄</a></li>
                <li class="shopping_commend_list_2">¥36.00</li>
                <li class="shopping_commend_list_3">¥27.70</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
        </div>
        <div class="shopping_commend_sort_mid"></div>
        <div class="shopping_commend_sort_left">
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">深入浅出MySQL数据库开发、优...</a></li>
                <li class="shopping_commend_list_2">¥59.00</li>
                <li class="shopping_commend_list_3">¥47.20</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">大玩家(马未都、王刚推荐!央...</a></li>
                <li class="shopping_commend_list_2">¥34.80</li>
                <li class="shopping_commend_list_3">¥20.60</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">都市风水师--官场风水小说:一...</a></li>
                <li class="shopping_commend_list_2">¥39.80</li>
                <li class="shopping_commend_list_3">¥30.50</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
            <ul>
                <li class="shopping_commend_list_1">·<a href="#" class="blue">国戏(以麻将术语解读宦海沉浮...</a></li>
                <li class="shopping_commend_list_2">¥25.00</li>
                <li class="shopping_commend_list_3">¥17.30</li>
                <li class="shopping_commend_list_4"><a href="#" class="shopping_yellow">购买</a></li>
            </ul>
        </div>
    </div>

    <div class="shopping_list_top">您已选购以下商品</div>
    <div class="shopping_list_border">

        <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr class="shopping_list_title">
                <td class="shopping_list_title_1">商品名</td>
                <td class="shopping_list_title_2">单品积分</td>
                <td class="shopping_list_title_3">市场价</td>
                <td class="shopping_list_title_4">当当价</td>
                <td class="shopping_list_title_5">数量</td>
                <td class="shopping_list_title_6">删除</td>
            </tr>
        </table>
        <table width="100%" border="0" cellspacing="0" cellpadding="0" id="myTableProduct">
            <tr class="shopping_product_list" id="shoppingProduct_01" onMouseOver="productOver('shoppingProduct_01')"  onMouseOut="productOut('shoppingProduct_01')">
                <td class="shopping_product_list_1"><a href="#" class="blue">私募(首部披露资本博弈秘密的金融...</a></td>
                <td class="shopping_product_list_2"><label>189</label></td>
                <td class="shopping_product_list_3"><label>32.00</label></td>
                <td class="shopping_product_list_4"><label>18.90 </label>(59折)</td>
                <td class="shopping_product_list_5"><input type="text" value="1" onblur="productCount()"></td>
                <td class="shopping_product_list_6"><a href="javascript:deleteProduct('shoppingProduct_01')" class="blue">删除</a></td>
            </tr>
            <tr class="shopping_product_list" id="shoppingProduct_02" onMouseOver="productOver('shoppingProduct_02')"  onMouseOut="productOut('shoppingProduct_02')">
                <td class="shopping_product_list_1"><a href="#" class="blue"> 小团圆(张爱玲最神秘小说遗稿)</a></td>
                <td class="shopping_product_list_2"><label>173</label></td>
                <td class="shopping_product_list_3"><label>28.00</label></td>
                <td class="shopping_product_list_4"><label>17.30</label>(62折)</td>
                <td class="shopping_product_list_5"><input type="text" value="1" onBlur="productCount()"></td>
                <td class="shopping_product_list_6"><a href="javascript:deleteProduct('shoppingProduct_02')" class="blue">删除</a></td>
            </tr>

            <tr class="shopping_product_list" id="shoppingProduct_03" onMouseOver="productOver('shoppingProduct_03')"  onMouseOut="productOut('shoppingProduct_03')">
                <td class="shopping_product_list_1"><a href="#" class="blue">不抱怨的世界(畅销全球80国的世界...</a></td>
                <td class="shopping_product_list_2"><label>154</label></td>
                <td class="shopping_product_list_3"><label>24.80</label></td>
                <td class="shopping_product_list_4"><label>15.40</label> (62折)</td>
                <td class="shopping_product_list_5"><input type="text" value="2" onBlur="productCount()"></td>
                <td class="shopping_product_list_6"><a href="javascript:deleteProduct('shoppingProduct_03')" class="blue">删除</a></td>
            </tr>
            <tr class="shopping_product_list" id="shoppingProduct_04" onMouseOver="productOver('shoppingProduct_04')"  onMouseOut="productOut('shoppingProduct_04')">
                <td class="shopping_product_list_1"><a href="#" class="blue">福玛特双桶洗衣机XPB20-07S</a></td>
                <td class="shopping_product_list_2"><label>358</label></td>
                <td class="shopping_product_list_3"><label>458.00</label></td>
                <td class="shopping_product_list_4"><label>358.00</label> (78折)</td>
                <td class="shopping_product_list_5"><input type="text" value="1" onBlur="productCount()"></td>
                <td class="shopping_product_list_6"><a href="javascript:deleteProduct('shoppingProduct_04')" class="blue">删除</a></td>
            </tr>
            <tr class="shopping_product_list" id="shoppingProduct_05" onMouseOver="productOver('shoppingProduct_05')"  onMouseOut="productOut('shoppingProduct_05')">
                <td class="shopping_product_list_1"><a href="#" class="blue">PHP和MySQL Web开发 (原书第4版)</a></td>
                <td class="shopping_product_list_2"><label>712</label></td>
                <td class="shopping_product_list_3"><label>95.00</label></td>
                <td class="shopping_product_list_4"><label>71.20</label> (75折)</td>
                <td class="shopping_product_list_5"><input type="text" value="1" onBlur="productCount()"></td>
                <td class="shopping_product_list_6"><a href="javascript:deleteProduct('shoppingProduct_05')" class="blue">删除</a></td>
            </tr>
            <tr class="shopping_product_list" id="shoppingProduct_06" onMouseOver="productOver('shoppingProduct_06')"  onMouseOut="productOut('shoppingProduct_06')">
                <td class="shopping_product_list_1"><a href="#" class="blue">法布尔昆虫记</a>(再买¥68.30即可参加“满199元减10元现金”活动)</td>
                <td class="shopping_product_list_2"><label>10</label></td>
                <td class="shopping_product_list_3"><label>198.00</label></td>
                <td class="shopping_product_list_4"><label>130.70</label> (66折)</td>
                <td class="shopping_product_list_5"><input type="text" value="1" onBlur="productCount()"></td>

                <td class="shopping_product_list_6"><a href="javascript:deleteProduct('shoppingProduct_06')" class="blue">删除</a></td>
            </tr>
        </table>
        <div class="shopping_list_end">
            <ul>
                <li class="shopping_list_end_1"><input name="" type="image" src="images/shopping_balance.gif"></li>
                <li class="shopping_list_end_2"><label id="product_total"></label></li>
                <li class="shopping_list_end_3">商品金额总计:</li>
                <li  class="shopping_list_end_4">您共节省金额:¥<label class="shopping_list_end_yellow" id="product_save"></label><br/>
                    可获商品积分:<label class="shopping_list_end_yellow" id="product_integral"></label>
                </li>
            </ul>
        </div>
    </div>
</div>

<!--网站版权部分开始-->
<div id="footer">
    <iframe src="footer.html" height="50px" width="900px" frameborder="0"></iframe></div>
</body>
</html>

猜你喜欢

转载自www.cnblogs.com/helloworldlx/p/8976601.html