【问题标题】:Jquery - Two drop down menusJquery - 两个下拉菜单
【发布时间】:2014-09-24 02:36:35
【问题描述】:

我有两个下拉菜单,根据您选择的选项显示和隐藏 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();
});

【问题讨论】:

    标签: jquery drop-down-menu


    【解决方案1】:

    HTML 代码:

       <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();
    });
    

    【讨论】:

    • 可以过滤整个行,即 元素。你能发送一个工作的jsfiddle吗? :)
    • 让它工作。仅将 td 更改为 tr 但感谢队友!效果很好!
    【解决方案2】:

    “tr 类”是指具有特定类的 tr 元素,具体类由过滤器数组确定。

    您可以将 ID 为 FilterContainer 的 div 放入表格中

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

    你的选择器如下:

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

    【讨论】:

    • 介意发送一个有效的 JSFiddle 吗?我的不行!是的,这就是我所说的:)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签