我正在尝试使用jquery隐藏具有负美元金额的表中的任何行

时间:2018-07-13 19:23:41

标签: jquery

我在表格中有以下表格行。我正在尝试使用jquery隐藏具有负美元金额的表中的任何行。如何测试div中的文本是否为负数,以及如何将类添加到行类中以便将其隐藏。

<tr class="Cont">
        <td>Name of something</td>
        <td><div class="negMoney">$-1,000.22</div></td>

        </tr>

2 个答案:

答案 0 :(得分:2)

在jQuery中使用hascontains选择器。

$("tr:has(div:contains('-'))").hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table>
  <tr class="Cont">
        <td>Name of something a</td>
        <td><div class="negMoney">$-1,000.22</div></td>

   </tr>
  <tr class="Cont">
        <td>Name of something b</td>
        <td><div class="negMoney">$1,000.22</div></td>

   </tr>
  <tr class="Cont">
        <td>Name of something c</td>
        <td><div class="negMoney">$-1,000.22</div></td>

   </tr>
  <tr class="Cont">
        <td>Name of something d</td>
        <td><div class="negMoney">$1,000.22</div></td>

   </tr>
  <tr class="Cont">
        <td>Name of something e</td>
        <td><div class="negMoney">$1,000.22</div></td>

   </tr>   

答案 1 :(得分:0)

$("tr:has(div:contains('-'))").hide();将在TD的每个DIV中搜索-(负),然后,如果将来在TD中出现任何div,则此解决方案将不起作用。

在以下解决方案中,它将仅在 negMoney 类(该行的第二个TD)中搜索负值。

$(".negMoney").each(function(i){
   var val = $(this).html();
   var isNegative = Number((val.substr(1)).replace(/\,/g,'')) < 0;       
   if(isNegative) { 
      $("tr:eq( "+ i +" )").hide(); 
   }
});