淘宝筛选

2019-03-11  本文已影响0人  Wo信你个鬼
taobao.png
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
                list-style: none;
            }
            
            .web {
                width: 500px;
                margin: 20px auto;
            }
            
            .option {
                font-size: 16px;
                border-bottom: 1px solid #bbb;
            }
            
            .option li {
                margin-bottom: 20px;
            }
            
            .option span {
                display: inline-block;
                color: #666;
                padding: 5px 10px;
                border: 1px solid #999;
            }
            
            .option li>span {
                cursor: pointer;
            }
            
            .option p {
                /*font-weight: bold;*/
                display: inline-block;
                width: 50px;
                text-align: center;
                color: #000;
                border: 1px solid transparent;
            }
            
            .option .active {
                border: 2px solid #f60;
            }
            
            .price {
                margin-top: 20px;
            }
            
            .price em {
                font-style: normal;
                font-size: 22px;
                color: #f60;
            }
            
            input {
                width: 380px;
                height: 45px;
                line-height: 45px;
                background: #f60;
                border: none;
                outline: none;
                color: #fff;
                font-size: 23px;
                margin-top: 20px;
            }
        </style>
    </head>

    <body>
        <div class="web">
            <ul class="option">
                <li class="type model">
                    <p>型号</p>
                    <span data-mprice = "5288"  class="active">4.7英寸</span>
                    <span data-mprice = "6088">5.5英寸</span>
                </li>
                <li class="type color">
                    <p>颜色</p>
                    <span class="active">银色</span>
                    <span>金色</span>
                    <span>深空灰色</span>
                </li>
                <li class="type Memory">
                    <p>内存</p>
                    <span data-mprice="0" class="active">16GB</span>
                    <span data-mprice="888">64GB</span>
                    <span data-mprice="1600">128GB</span>
                </li>
                <li class="type edition">
                    <p>版本</p>
                    <span class="active">公开版</span>
                    <span>移动赠费版</span>
                    <span>联通合约版</span>
                </li>
            </ul>
            <div class="price">价格:<em>¥5288.00</em></div>
            <input type="button" value="立即购买" />
        </div>
        <script type="text/javascript">
            //点击切换颜色
            let allspan = document.querySelectorAll("span");
            let price = document.querySelector(".price em");
            console.log(price)
            for(let i = 0; i < allspan.length; i++) {
                allspan[i].addEventListener("click", () => {
                    let spanParent = allspan[i].parentNode;
                    for(let j = 0; j < spanParent.children.length; j++) {
                        spanParent.children[j].classList.remove("active");
                    }
                    allspan[i].classList.add("active");
                    //方法一
//                      totalPrice(allspan[i]);
                    //方法二   
//                      sumPrice();
                    //方法三
                        sumPrice1(allspan[i]);
                })
            }
            //计算价格
            //型号
            //内存
            
            
            
            
            //方法一
            let p1 = 5288, 
                p2 = 0; 
            function totalPrice(obj) {              
                if (obj.parentNode.classList.contains("model")) {
                  for (let i=1;i<obj.parentNode.children.length;i++) {
                    if (obj.parentNode.children[i].classList.contains("active")) {
                        p1 = i ==1?5288:6088;
                    }
                  }
                }
                if (obj.parentNode.classList.contains("Memory")) {
                  for (let j=1;j<obj.parentNode.children.length;j++) {
                    if (obj.parentNode.children[j].classList.contains("active")) {
                        p2 = j ==1?0:j==2?800:1600;
                    }
                  }
                }
                price.innerHTML = "¥" +(p1+p2).toFixed(2);
            }
            
            
            
            
            //方法二           
            let modelSpan = document.querySelectorAll(".model span");
                memorySpan = document.querySelectorAll(".Memory span");
                
            function sumPrice(){
                let price1 = 0,
                    price2 = 0;
                for (let i=0;i<modelSpan.length;i++) {
                    if (modelSpan[i].classList.contains("active")) {
                        price1 = i==0?5288:6088;
                    }
                }
                for (let j=0;j<memorySpan.length;j++) {
                    if (memorySpan[j].classList.contains("active")) {
                        price2 = j==0?0:j==1?5288:6088;
                    }
                }
                price.innerText = "¥" +(price1+price2).toFixed(2);
            }
            
            
            
            //方法三
            let pr1 = 5288,
                pr2 = 0;
            function sumPrice1(obj){
                if (obj.parentNode.classList.contains("model")) {
                    pr1 = parseFloat(obj.dataset.mprice);
                }
                if (obj.parentNode.classList.contains("Memory")) {
                    pr2 = parseFloat(obj.dataset.mprice);
                }
                price.innerText = "¥" +(pr1+pr2).toFixed(2);
            }
        </script>
    </body>

</html>

上一篇下一篇

猜你喜欢

热点阅读