ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryの複数条件filtering_jqueryの実装方法

jQueryの複数条件filtering_jqueryの実装方法

WBOY
WBOYオリジナル
2016-05-16 15:33:431395ブラウズ

この記事の例では、jquery を使用した複数条件のフィルター効果の実装について説明します。皆さんの参考に共有してください。詳細は以下の通りです。
電子商取引プラットフォームで商品を購入する場合、商品リスト ページでブランド、スタイル、価格帯、その他の条件に基づいてフィルタリングおよびクエリを実行し、条件をクリックすると、ユーザーが選択した一連の条件が表示されます。ページ上に該当する条件が表示され、条件付き商品情報が表示されます。そこで今日は、jQuery を使用してこのフロントエンド効果を実現します。
オペレーションのレンダリング:

HTML
まず、クエリ条件を分類し、条件コンテナ li.select-list と選択条件コンテナ div.select-result をページ上に配置します。

<ul class="select">  
    <li class="select-list">  
      <dl id="select1">  
        <dt>上装:</dt>  
        <dd class="select-all selected"><a href="#">全部</a></dd>  
        <dd><a href="#">针织衫</a></dd>  
        <dd><a href="#">毛呢外套</a></dd>  
        <dd><a href="#">T恤</a></dd>  
        <dd><a href="#">羽绒服</a></dd>  
        <dd><a href="#">棉衣</a></dd>  
        <dd><a href="#">卫衣</a></dd>  
        <dd><a href="#">风衣</a></dd>  
      </dl>  
    </li>  
    <li class="select-list">  
      <dl id="select2">  
        <dt>裤装:</dt>  
        <dd class="select-all selected"><a href="#">全部</a></dd>  
        <dd><a href="#">牛仔裤</a></dd>  
        <dd><a href="#">小脚/铅笔裤</a></dd>  
        <dd><a href="#">休闲裤</a></dd>  
        <dd><a href="#">打底裤</a></dd>  
        <dd><a href="#">哈伦裤</a></dd>  
      </dl>  
    </li>  
    <li class="select-result">  
      <dl>  
        <dt>已选条件:</dt>  
        <dd class="select-no">暂时没有选择过滤条件</dd>  
      </dl>  
    </li>  
  </ul>  

コンテンツを配置したら、ページコンテンツに CSS スタイルを追加し、関連する JS を読み込みます。

<link rel="stylesheet" type="text/css" href="css/style.css">  
<script type="text/javascript" src="js/jquery.js"></script>  
<script type="text/javascript" src="js/script.js"></script>

jQuery
ユーザーがいずれかの条件をクリックすると、現在選択されている状態がマークされ、隣接する条件の選択が解除され、選択された条件コンテナの内容が更新されます。コードを参照してください:

$(document).ready(function() { 
  $("#select1 dd").click(function() { 
    $(this).addClass("selected").siblings().removeClass("selected"); 
    if ($(this).hasClass("select-all")) { 
      $("#selectA").remove(); 
    } else { 
      var copyThisA = $(this).clone(); 
      if ($("#selectA").length > 0) { 
        $("#selectA a").html($(this).text()); 
      } else { 
        $(".select-result dl").append(copyThisA.attr("id", "selectA")); 
      } 
    } 
  }); 
  $("#select2 dd").click(function() { 
    $(this).addClass("selected").siblings().removeClass("selected"); 
    if ($(this).hasClass("select-all")) { 
      $("#selectB").remove(); 
    } else { 
      var copyThisB = $(this).clone(); 
      if ($("#selectB").length > 0) { 
        $("#selectB a").html($(this).text()); 
      } else { 
        $(".select-result dl").append(copyThisB.attr("id", "selectB")); 
      } 
    } 
  }); 
  $("#selectA").live("click", 
  function() { 
    $(this).remove(); 
    $("#select1 .select-all").addClass("selected").siblings().removeClass("selected"); 
  }); 
  $("#selectB").live("click", 
  function() { 
    $(this).remove(); 
    $("#select2 .select-all").addClass("selected").siblings().removeClass("selected"); 
  }); 
  $(".select dd").live("click", 
  function() { 
    if ($(".select-result dd").length > 1) { 
      $(".select-no").hide(); 
    } else { 
      $(".select-no").show(); 
    } 
  }); 
});  

実際のアプリケーションでは、適切な選択条件を実現するためにバックエンドプログラムを組み合わせる必要があり、ページの応答の内容も変わります。興味のある学生は試してみてください。

以上がこの記事の全内容です。js で複数条件のフィルタリング関数を実装する方法を説明します。ご参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。