Jquery - 两个下拉菜单

时间:2014-09-23 18:21:03

标签: jquery drop-down-menu

我有两个下拉菜单,根据您选择的选项显示和隐藏div元素。我想将div类更改为tr类,但我不能让它工作。我应该如何重写jquery代码以使其适用于tr类?

以下是带有代码

JSFiddle

这是我相信应该重写的jquery代码。

$("select.filterby").change(function(){
    var filters = $.map($("select.filterby").toArray(), function(e){
        return $(e).val();
    }).join(".");
    $("div#FilterContainer").find("div").hide();
    $("div#FilterContainer").find("div." + filters).show();
});

2 个答案:

答案 0 :(得分:0)

HTML code:

   <p>Filter: </p>
            <select class="filterby">
            <option value="all"><h5>Show All</h5></option>
            <option value="1"><h5>One</h5></option>
            <option value="2"><h5>Two</h5></option>
            <option value="3"><h5>Three</h5></option>
          </select>



      <p>Location: </p>
        <select class="filterby">
        <option value="all"><h5>All Locations</h5></option>
        <option value="nj"><h5>NJ</h5></option>
        <option value="ny"><h5>NY</h5></option>
        <option value="pa"><h5>PA</h5></option>
      </select>


  <table id="FilterContainer">
<tbody>
  <tr><td class="all 1 nj">Test One NJ</td></tr>
  <tr><td class="all 1 ny">Test One NY</td></tr>
  <tr><td class="all 1 pa">Test One PA</td></tr>
  <tr><td class="all 2 nj">Test Two NJ</td></tr>
  <tr><td class="all 2 ny">Test Two NY</td></tr>
  <tr><td class="all 2 pa">Test Two PA</td></tr>
  <tr><td class="all 3 nj">Test Three NJ</td></tr>
  <tr><td class="all 3 ny">Test Three NY</td></tr>
  <tr><td class="all 3 pa">Test Three PA</td></tr>
  <tr><td class="all 1 nj">Test One NJ</td></tr>
  <tr><td class="all 1 pa">Test One PA</td></tr>
  <tr><td class="all 1 pa">Test One PA</td></tr>
  <tr><td class="all 2 nj">Test Two NJ</td></tr>
  <tr><td class="all 2 ny">Test Two NY</td></tr>
  <tr><td class="all 2 ny">Test Two NY</td></tr>
</tbody>
</table>

JS代码:

$("select.filterby").change(function(){
    var filters = $.map($("select.filterby").toArray(), function(e){
        return $(e).val();
    }).join(".");
    $("table#FilterContainer").find("td").hide();
    $("table#FilterContainer").find("td." + filters).show();
});

答案 1 :(得分:0)

通过&#34; tr类&#34;,我假设你指的是具有由过滤器数组确定的特定类的tr元素。

您可以将具有FilterContainer id的div放入表格

<table id="FilterContainer">
    <tr class="all 1 ng"><td>...</td></tr>
    ....
</table>

您的选择器如下:

$("#FilterContainer tr").hide();
$("#FilterContainer tr").show();