【问题标题】:How to hide table rows based on child class name using jquery?如何使用 jquery 隐藏基于子类名的表行?
【发布时间】:2017-01-31 00:33:28
【问题描述】:

我有很多行,我想隐藏一些没有特定类的 tr。

例子:

<tr id="game-22590" class="game">
    <td class="pos left-edge">
        <div>2</div>
    </td>
    <td class="cost">
        <input class="dollars-paid uncorrected" type="text" value="19,99" tabindex="4">
    </td>
</tr>
<tr id="game-22591" class="game">
    <td class="pos left-edge">
        <div>3</div>
    </td>
    <td class="cost">
        <input class="dollars-paid" type="text" value="23,99" tabindex="4">
    </td>
</tr>

td.cost 有一个或两个类的输入。我想隐藏那些没有uncorrected 类的行。

【问题讨论】:

    标签: javascript jquery html html-table classname


    【解决方案1】:

    使用.filter() 选择行有uncorrected 类。

    $("tr.game").filter(function(){
        return $(this).find("input.uncorrected").length == 0;
    }).hide();
    

    $("tr.game").filter(function(){
        return $(this).find("input.uncorrected").length == 0;
    }).hide();
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table>
      <tr id="game-22590" class="game">
        <td class="pos left-edge">
          <div>2</div>
        </td>
        <td class="cost">
          <input class="dollars-paid uncorrected" type="text" value="19,99" tabindex="4">
        </td>
      </tr>
      <tr id="game-22591" class="game">
        <td class="pos left-edge">
          <div>3</div>
        </td>
        <td class="cost">
          <input class="dollars-paid" type="text" value="23,99" tabindex="4">
        </td>
      </tr>
    </table>

    【讨论】:

      【解决方案2】:

      您可以使用最接近的()方法 jQuery 来做到这一点...请检查此解决方案

      $(".dollars-paid").not(".uncorrected").closest(".game").hide();
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
      <table>
        <tr id="game-22590" class="game">
          <td class="pos left-edge">
              <div>2</div>
          </td>
          <td class="cost">
              <input class="dollars-paid uncorrected" type="text" value="19,99" tabindex="4">
          </td>
      </tr>
      <tr id="game-22591" class="game">
          <td class="pos left-edge">
              <div>3</div>
          </td>
          <td class="cost">
              <input class="dollars-paid" type="text" value="23,99" tabindex="4">
          </td>
      </tr>
      
      <tr id="game-22592" class="game">
          <td class="pos left-edge">
              <div>3</div>
          </td>
          <td class="cost">
              <input class="dollars-paid" type="text" value="25,99" tabindex="4">
          </td>
      </tr>
        </table>

      【讨论】:

        【解决方案3】:
        $("table tr.game").each(function(){
            var self=$(this);
            if(!self.find("input").hasClass("uncorrected")){
                self.hide();
            }
        });
        

        Working DEMO

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-17
          • 1970-01-01
          • 2011-11-17
          • 2012-04-08
          • 1970-01-01
          • 2021-08-23
          相关资源
          最近更新 更多