Jquery 而循环通过每个tr中的最后一个td并有条件隐藏整行

Jquery 而循环通过每个tr中的最后一个td并有条件隐藏整行,jquery,Jquery,我有一个表,其中有一个数据列表。例如,它的数据如下图所示。我想在total的列下隐藏显示$0.00的任何行。我在下面的jQuery中循环并显示行中最后一个td的警报,但我无法做到这一点 如何让jQuery遍历本文的最后一列,并检查字段是否有$0.00的值隐藏它的整行 例如,在下图中,不应显示汽油、零售和批发,因为它们在“总计”部分的值均为0.00美元 我编写的jQuery示例 $('#table tr td:last-child').each(function(){ alert("abc");

我有一个表,其中有一个数据列表。例如,它的数据如下图所示。我想在total的列下隐藏显示$0.00的任何行。我在下面的jQuery中循环并显示行中最后一个td的警报,但我无法做到这一点

如何让jQuery遍历本文的最后一列,并检查字段是否有$0.00的值隐藏它的整行

例如,在下图中,不应显示汽油、零售和批发,因为它们在“总计”部分的值均为0.00美元

我编写的jQuery示例

$('#table tr td:last-child').each(function(){
alert("abc");
})
图片中的示例表代码

<tbody class="vt-section">
            <!--Title-->
            <tr data-holder="top_title" class="top_title">
                <th class="title">Income</th>
            <th class="title thSection">July<br>2016</th><th class="title thSection">August<br>2016</th><th class="title thSection">September<br>2016</th><th class="title undefined">TOTALS</th></tr>
            <!--Data-->
            <tr data-holder="inc_food">
                <th class="vt-label-un">Food</th>
            <td undefined="">$26,542.00</td><td undefined="">$25,955.00</td><td undefined="">$26,067.00</td><td class="bold">$78,564.00</td></tr>
            <tr data-holder="inc_non_food">
                <th class="vt-label-un">Non-Food</th>
            <td undefined="">$3,507.00</td><td undefined="">$3,020.00</td><td undefined="">$3,054.00</td><td class="bold">$9,581.00</td></tr>
            <tr data-holder="inc_gasoline">
                <th class="vt-label-un">Gasoline</th>
            <td undefined="">$0.00</td><td undefined="">$0.00</td><td undefined="">$0.00</td><td class="bold">$0.00</td></tr>
            <tr data-holder="inc_retail">
                <th class="vt-label-un">Retail</th>
            <td undefined="">$0.00</td><td undefined="">$0.00</td><td undefined="">$0.00</td><td class="bold">$0.00</td></tr>
            <tr data-holder="inc_wholesale">
                <th class="vt-label-un">Wholesale</th>
            <td undefined="">$0.00</td><td undefined="">$0.00</td><td undefined="">$0.00</td><td class="bold">$0.00</td></tr>
            <!--Totals-->
            <tr data-holder="inc_total_sales">
                <th class="vt-label-un bold">Total Sales</th>
            <td class="incTotal">$30,049.00</td><td class="incTotal">$28,975.00</td><td class="incTotal">$29,121.00</td><td class="incFinal red bold">$88,145.00</td></tr>
            </tbody>
谁曾将此标记为通过另一个主题有答案,我实现了该解决方案,但仍返回0.00美元

下面是这一解释

  // Remove $0.00 fields from the list
    $('#table tr').each(function() {
        var $erledigtCell = $(this).find("td").last().prev();
        var $row = $erledigtCell.parent();

        if($erledigtCell.text() == '$0.00'){
            $row.hide();
        } else {
            $row.show();
        }
    });
下面是getData的Ajax函数 /通过Ajax检索数据/

找到所有html值为$0.00的粗体元素,然后找到它们的父tr并隐藏它们

如果从ajax调用返回html以重新加载页面,为了避免闪存,可以在将数据附加到页面之前对数据执行此操作

var $data = $(data);
$data.find('.bold').filter(function(){
    return this.innerHTML.trim() === '$0.00';
}).closest('tr').hide();
$data.appendTo('whatever');
找到所有html值为$0.00的粗体元素,然后找到它们的父tr并隐藏它们

如果从ajax调用返回html以重新加载页面,为了避免闪存,可以在将数据附加到页面之前对数据执行此操作

var $data = $(data);
$data.find('.bold').filter(function(){
    return this.innerHTML.trim() === '$0.00';
}).closest('tr').hide();
$data.appendTo('whatever');
这可以做到:

$('.bold').each(function() {
  if ($(this).text() == "$0.00") $(this).parent().hide()
})
$('.bold')。每个(函数(){
if($(this.text()==“$0.00”)$(this.parent().hide())
})

收入
七月

2016年 八月
2016年 九月
2016年 总数 食物 $26,542.00 $25,955.00 $26,067.00 $78,564.00 非食品 $3,507.00 $3,020.00 $3,054.00 $9,581.00 汽油 $0.00 $0.00 $0.00 $0.00 零售 $0.00 $0.00 $0.00 $0.00 批发 $0.00 $0.00 $0.00 $0.00 总销售额 $30,049.00 $28,975.00 $29,121.00 $88,145.00
这样就可以了:

$('.bold').each(function() {
  if ($(this).text() == "$0.00") $(this).parent().hide()
})
$('.bold')。每个(函数(){
if($(this.text()==“$0.00”)$(this.parent().hide())
})

收入
七月

2016年 八月
2016年 九月
2016年 总数 食物 $26,542.00 $25,955.00 $26,067.00 $78,564.00 非食品 $3,507.00 $3,020.00 $3,054.00 $9,581.00 汽油 $0.00 $0.00 $0.00 $0.00 零售 $0.00 $0.00 $0.00 $0.00 批发 $0.00 $0.00 $0.00 $0.00 总销售额 $30,049.00 $28,975.00 $29,121.00 $88,145.00
试试这个-

$("#table tr").each(function () {
    if($(this).find("td:last-child").text() == "$0.00") {
        $(this).hide();
    }
});
试试这个-

$("#table tr").each(function () {
    if($(this).find("td:last-child").text() == "$0.00") {
        $(this).hide();
    }
});


未定义的
属性是怎么回事?我不知道它们来自何处。在每个函数的回调中可能存在重复的缺少参数,而
获取数据(开始、结束、公司)做什么?您也可以共享此代码吗?未定义的
属性是怎么回事?我不知道它们来自何处。每个函数的回调中可能存在重复的缺少参数的
获取数据(开始、结束、公司)做什么?你也能分享这段代码吗?这看起来很有效,但一秒钟之后,0.00美元的代码又回来了。我在行表生成后添加了这段代码,但返回的代码仍然是$0.00。我现在在实际问题中添加了这样做的代码。你是说你得到了一些屏幕闪光?您正在动态地重新加载数据吗?或者你的意思是页面加载?似乎有一段时间它们被删除了,但最终它们被重新读取到页面上。是的,这个表是由Ajax通过PHP查询加载的。理想情况下,在将其添加到页面之前,您应该对Ajax返回的标记执行此操作,以避免闪存。我将该代码添加到addData()函数之后,它就像一个符咒一样工作。它似乎工作正常,但一秒钟后,0.00美元的值就会回来。我在行表生成后添加了这段代码,但返回的代码仍然是$0.00。我现在在实际问题中添加了这样做的代码。你是说你得到了一些屏幕闪光?您正在动态地重新加载数据吗?或者你的意思是页面加载?似乎有一段时间它们被删除了,但最终它们被重新读取到页面上。是的,这个表是由Ajax通过PHP查询加载的。理想情况下,在将其添加到页面之前,您应该对Ajax返回的标记执行此操作,以避免闪存。我将该代码添加到addData()函数之后,它的工作非常有魅力。这也可以完成工作,但只是暂时的。然后再次显示$0.00。也许我在想,在删除$0.00之后,ajax正在以某种方式重写原始内容。@Reis您是否看到行重新出现在我回答中的代码段中?是的,我看到了。如果我多次单击“提交”,他们会离开一会儿,然后回来,这是不可能的。至少在我的答案片段中没有。函数运行后,不会重新加载或更改输出。这也会暂时完成任务。然后再次显示$0.00。也许我在想,在删除$0.00之后,ajax正在以某种方式重写原始内容。@Reis您是否看到行重新出现在我回答中的代码段中?是的,我看到了。如果我多次单击“提交”,他们会离开一会儿,然后回来,这是不可能的。至少在我的答案片段中没有。函数运行后,不会重新加载或更改输出。