用JS实现商品加减与统计结果

效果图

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style type="text/css">
    </style>
</head>
<body>
    <ul>
        <li>
            <input type="button" value="-"/>
            <strong>0</strong>
            <input type="button" value="+">
            单价:<em>12.5元</em>
            小计:<span>0元</span>
        </li>
        <li>
                <input type="button" value="-"/>
                <strong>0</strong>
                <input type="button" value="+">
                单价:<em>10.5元</em>
                小计:<span>0元</span>
        </li>
        <li>
                <input type="button" value="-"/>
                <strong>0</strong>
                <input type="button" value="+">
                单价:<em>8.5元</em>
                小计:<span>0元</span>
        </li>
        <li>
                <input type="button" value="-"/>
                <strong>0</strong>
                <input type="button" value="+">
                单价:<em>8元</em>
                小计:<span>0元</span>
        </li>
        <li>
                <input type="button" value="-"/>
                <strong>0</strong>
                <input type="button" value="+">
                单价:<em>14.5元</em>
                小计:<span>0元</span>
        </li>
    </ul>
    <p>
            商品合计共:<span>0</span> 件,共花费了:<span>0</span>元<br />
            所购商品中最贵的商品单价是:<span>0</span>元
            </p>
            
    <script>
            var aLi = document.getElementsByTagName("li");
            var aSpan = document.getElementsByTagName("p")[0].getElementsByTagName("span");
            var iNum = 0;
            var iPrice = 0;
            for(var i=0;i<aLi.length;i++){
                    price(aLi[i]);
            }
            function price(oParent){
                    //获取每个Li里的各个标签
                    var aBtn = oParent.getElementsByTagName("input");
                    var oStr = oParent.getElementsByTagName("strong")[0];
                    var oEm = oParent.getElementsByTagName("em")[0];
                    var oSpan = oParent.getElementsByTagName("span")[0];
                    //商品减法
                    aBtn[0].onclick = function(){
                            if(oStr.innerHTML>0){
                                    oStr.innerHTML--;
                                    iNum--;
                                    iPrice -=parseFloat(oEm.innerHTML);
                                    oSpan.innerHTML = parseFloat(oEm.innerHTML)*oStr.innerHTML+"元";
                                    aSpan[0].innerHTML = iNum;
                                    aSpan[1].innerHTML = iPrice;
                                    aSpan[2].innerHTML = maxPrice();
                            }
                    }
                    //商品加法
                    aBtn[1].onclick = function(){
                            oStr.innerHTML++;
                            iNum++;
                            iPrice += parseFloat(oEm.innerHTML);
                            oSpan.innerHTML = parseFloat(oEm.innerHTML)*oStr.innerHTML+"元";
                            aSpan[0].innerHTML = iNum;
                            aSpan[1].innerHTML = iPrice;
                            aSpan[2].innerHTML = maxPrice(); 
                    }
            }
            //获取所选商品中最大单价
            function maxPrice(){
                   var oEm = document.getElementsByTagName("em");
                   var oStr = document.getElementsByTagName("strong");
                   var arr = [];
                   var iMax = 0;
                   for(i=0;i<oStr.length;i++){
                        if(oStr[i].innerHTML!=0){
                           arr.push(parseFloat(oEm[i].innerHTML));
                        }
                   }
                   for(i=0;i<arr.length;i++){
                           if(iMax<arr[i]){
                                   iMax = arr[i];
                           }
                   }
                   return iMax;
            }


    </script>
</body>
</html>

知识点

getElementById()   通过id属性获取一个元素节点对象。

getElementsByTagName() 通过标签名获取一组元素节点对象。

parseFloat()可解析一个字符串,并返回一个浮点数,如果字符串中的首个字符串不是数字,将返回NaN。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值