我在表格中有以下表格行。我正在尝试使用jquery隐藏具有负美元金额的表中的任何行。如何测试div中的文本是否为负数,以及如何将类添加到行类中以便将其隐藏。
<tr class="Cont">
<td>Name of something</td>
<td><div class="negMoney">$-1,000.22</div></td>
</tr>
答案 0 :(得分:2)
在jQuery中使用has
和contains
选择器。
$("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();
}
});