京東商城-商品リスト商品選別機能を作る


今回は京東商城-商品リスト商品選別機能を実現
一、htmlコード



    
    <link rel="stylesheet" type="text/css" href="css/style.css"/>



<div class="container">
    <div class="filter">
        <span>    :</span>
        <div class="itme">
            <!-- <a>
                ×  <span>  </span>
            </a> -->
        </div>
    </div>
    <div class="store">
        <dl>
            <dt>  :</dt>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  (hp)</a></div></dd>
            <dd><div><a>  (Lenovo)</a></div></dd>
            <dd><div><a>  (ThinkPad)</a></div></dd>
            <dd><div><a>  (acer)</a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>Gateway</a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>    </a></div></dd>
            <dd><div><a>   </a></div></dd>
            <dd><div><a>  (Apple)</a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>  </a></div></dd>
        </dl>
        <dl>
            <dt>  :</dt>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>1000-2999</a></div></dd>
            <dd><div><a>3000-3499</a></div></dd>
            <dd><div><a>3500-3999</a></div></dd>
            <dd><div><a>4000-4499</a></div></dd>
            <dd><div><a>4500-4999</a></div></dd>
            <dd><div><a>5000-5999</a></div></dd>
            <dd><div><a>6000-6999</a></div></dd>
            <dd><div><a>7000-9999</a></div></dd>
            <dd><div><a>10000  </a></div></dd>
        </dl>
        <dl>
            <dt>  :</dt>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>8.9     </a></div></dd>
            <dd><div><a>11  </a></div></dd>
            <dd><div><a>12  </a></div></dd>
            <dd><div><a>13  </a></div></dd>
            <dd><div><a>14  </a></div></dd>
            <dd><div><a>15  </a></div></dd>
            <dd><div><a>16  -17  </a></div></dd>
        </dl>
        <dl>
            <dt>  :</dt>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>AMD Brazos APU  </a></div></dd>
            <dd><div><a>Intel Sandy Bridge  </a></div></dd>
            <dd><div><a>Intel  </a></div></dd>
            <dd><div><a>AMD  </a></div></dd>
        </dl>
        <dl>
            <dt>  :</dt>
            <dd><div><a>  </a></div></dd>
            <dd><div><a>    </a></div></dd>
            <dd><div><a>    </a></div></dd>
            <dd><div><a>    </a></div></dd>            
        </dl>
    </div>
</div>
<script type="text/javascript" src="js/jquery-1.10.2.min.js"/>
<script type="text/javascript">
var arr = [];
$(function(){

    $(".store dt+dd a").attr("class",'all-color');
    $(".store a").click(function(){
        $(this).parents("dl").children('dd').each(function(){
            $(this).children('div').children('a').removeClass("all-color")
        })
        $(this).attr("class",'all-color');

        $(this).parentsUntil("dl").parent().hide();

        arr.push($(this));
        var val = $(this).html();

        var domItem = `<a 
                            onclick=deletes('${val}')
                            rel='${val}'
                        >
                        ×  <span>${val}</span>
                       </a>`;
        $(".itme").append(domItem);
    })

})
function deletes(val){

    $(".filter").find("a[rel='"+val+"']").remove();
    for(var i=0;i<arr.length;i++){
        if(arr[i].html() == val ){
            arr[i].parentsUntil("dl").parent().show();
            arr.splice(i,1);
            i--;
        }else{
            arr[i].parentsUntil("dl").parent().hide();
        }
    }

}

</script>


       Q-q-u-n: 731771211,               ,              
(               ,    ,            )
</code></pre> 
  <p> 、css  </p> 
  <pre><code>*{margin:0;padding:0;}
ul{list-style: none;}
a{text-decoration: none;cursor:pointer;}
.container{
    width:720px;
    margin:20px auto 0 auto;
    border-width: 2px 1px 0 1px;
    border-color: #ff5500 #ccc #ccc #ccc;
    border-style:solid;
}
.filter{
    padding:10px 0 10px 36px;
    background: #f2f2f2;
    border-bottom:1px solid #ccc;
    font-size:14px;
    display: flex;
}
.itme{
    margin-left:10px;
}
.itme a{
    padding:0 10px;
    margin:0 5px;
    border:1px solid #ff5500;
    border-radius: 5px;
    background: #fff;
    color:red;
}
.store dl{
    padding: 0 0 15px 110px;
    border-bottom: 1px solid #ccc;
    display: flex;
    flex-wrap: wrap;
    font-size:12px;
}
.store dl dt{
    width:110px;
    margin:15px 0 0 -110px;
    text-align: right;
    line-height: 16px;
    font-size:14px;
    color:#404040;
    font-weight: bold;
}
.store dl dd{
    margin:12px 18px 0 0;
}
.all-color{
    background: blue;
    color:#fff;
}

</code></pre> 
 </div> 
</div>
                            </div>
                        </div>