簡體   English   中英

我有一個產品清單。 當用戶選中該復選框時,頁面僅顯示所選類別中的項目列表。其余產品將隱藏

[英]I have a product list. when user selects the checkbox, page displays list of items in selected category only.remaining products will hide

<div id="productControls">
    <form>
      <div>
        <span>Show:</span>
        <input  id="vitamins" type="checkbox" checked="checked" />
        <label for="vitamins">Vitamins</label>
        <input  id="proteinB" type="checkbox" checked="checked" />
        <label for="proteinB">ProteinBars</label>
      </div>
    </form>

  </div>
  <ul class="product-list">
    <li class="product-item" data-prod_id="V-A1037">
        <img class="product-image" src="images/products/vitamin-a.jpg" alt="Vitamin A - Product Photo">
        <h2 class="product-name" data-type="vitamin">Vitamin A</h2>
    </li>
    <li class="product-item" data-prod_id="PB-8154">
        <img class="product-image" src="images/products/proteinbar-chocolate.jpg" alt="Protein Bar Chocolate - Product Photo">
        <h2 class="product-name" data-type="proteinbar">Chocolate Protein Bar</h2>
    </li>
    <li class="product-item" data-prod_id="V-MV7763">
        <img class="product-image" src="images/products/vitamin-multi.jpg" alt="Vitamin Multivitamin - Product Photo">
        <h2 class="product-name" data-type="vitamin">Multi-vitamin</h2>
    </li>
    <li class="product-item" data-prod_id="PB-1234">
        <img class="product-image" src="images/products/proteinbar-peanutbutter.jpg" alt="Vitamin Protein Bar Peanut Butter - Product Photo">
        <h2 class="product-name" data-type="proteinbar">Peanut Butter Protein Bar</h2>
    </li>
    <li class="product-item" data-prod_id="PB-1919">
        <img class="product-image" src="images/products/proteinbar-lemon.jpg" alt="Protein Bar Lemon - Product Photo">
        <h2 class="product-name" data-type="proteinbar">Lemon Protein Bar</h2>
    </li>

  </ul><!-- product-list -->

<script>

        document.querySelector('#Vitamins').addEventListener('change',function (evt) {
                        updateView();
                    });
                    document.querySelector('#ProteinB').addEventListener('change',function (evt) {
                        updateView();
                    });
       function updateView(){
         //how to approach//

        }
</script>

函數“ updateView”中包含什么。 解決此問題的方法有哪些? 如果用戶選擇了維生素,則復選框頁面應顯示所有維生素產品,而蛋白質產品則不應顯示,反之亦然。 TIA。

測試工作:

 document.querySelector('#vitamin').addEventListener('change', function(evt) { updateView(evt, this); }, false); document.querySelector('#proteinbar').addEventListener('change', function(evt) { updateView(evt, this); }, false); var productList = document.getElementsByClassName('product-list')[0]; var productName = productList.getElementsByClassName('product-name'); function updateView(e, self) { self.checked ? showOrHidden('block', self) : showOrHidden('none', self); } function showOrHidden(choice, thisArgu) { Array.from(productName).forEach(function(ele) { thisArgu.id === ele.getAttribute('data-type') ? ele.parentNode.style.display = choice : true; }); } 
 <div id="productControls"> <form> <div> <span>Show:</span> <input id="vitamin" type="checkbox" checked="checked" /> <label for="vitamin">Vitamins</label> <input id="proteinbar" type="checkbox" checked="checked" /> <label for="proteinbar">ProteinBars</label> </div> </form> </div> <ul class="product-list"> <li class="product-item" data-prod_id="V-A1037"> <img class="product-image" src="images/products/vitamin-a.jpg" alt="Vitamin A - Product Photo"> <h2 class="product-name" data-type="vitamin">Vitamin A</h2> </li> <li class="product-item" data-prod_id="PB-8154"> <img class="product-image" src="images/products/proteinbar-chocolate.jpg" alt="Protein Bar Chocolate - Product Photo"> <h2 class="product-name" data-type="proteinbar">Chocolate Protein Bar</h2> </li> <li class="product-item" data-prod_id="V-MV7763"> <img class="product-image" src="images/products/vitamin-multi.jpg" alt="Vitamin Multivitamin - Product Photo"> <h2 class="product-name" data-type="vitamin">Multi-vitamin</h2> </li> <li class="product-item" data-prod_id="PB-1234"> <img class="product-image" src="images/products/proteinbar-peanutbutter.jpg" alt="Vitamin Protein Bar Peanut Butter - Product Photo"> <h2 class="product-name" data-type="proteinbar">Peanut Butter Protein Bar</h2> </li> <li class="product-item" data-prod_id="PB-1919"> <img class="product-image" src="images/products/proteinbar-lemon.jpg" alt="Protein Bar Lemon - Product Photo"> <h2 class="product-name" data-type="proteinbar">Lemon Protein Bar</h2> </li> </ul> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM