使用特定文本隐藏DIV内的表行

时间:2014-02-10 15:00:40

标签: jquery html-table

我想隐藏带有特定文本的表格行。该表位于DIV内。

<div id="TBL1" class="ShipEst">
<table align="right" style="width: 100%">
<tbody>
<tr>
 <td align="left">
 <b>Subtotal: </b>
 </td>
 <td align="center"> </td>
 <td align="right">
 <nobr>Rs 25.00</nobr>
</td>
</tr>

<tr>
 <td align="left">
 <b>Shipping: </b>
 </td>
 <td align="center"> </td>
<td align="right">
<nobr>Rs 0.00</nobr>
</td>
</tr>

</tbody>
</table>
</div>

我正在使用以下内容,但我不想循环这个条件。

$('table tr').each(function(){
    var $this = $(this);
    if ($this.text() == 'Shipping') {
        $this.closest("tr").hide();
    }
})

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

tr的文字不等于Shipping它是目标tr文本的一部分。

jQuery(function ($) {
    $('#TBL1 table tr').has('td:first-child:contains("Shipping")').hide()
})

演示:Fiddle


但是使用:contains并不总是安全的,因为它也匹配部分文本,所以试试

jQuery(function ($) {
    $('#TBL1 table tr').filter(function () {
        return $.trim($(this).find('td:first-child').text()) == 'Shipping:'
    }).hide()
})

演示:Fiddle

答案 1 :(得分:0)

您可以为行添加一个类。 该类用于所有行。 然后试试这个:

$("table").on("change",".shipping_row",function(){
   $(this).closest("tr").hide();
})