Jquery 而循环通过每个tr中的最后一个td并有条件隐藏整行
我有一个表,其中有一个数据列表。例如,它的数据如下图所示。我想在total的列下隐藏显示$0.00的任何行。我在下面的jQuery中循环并显示行中最后一个td的警报,但我无法做到这一点 如何让jQuery遍历本文的最后一列,并检查字段是否有$0.00的值隐藏它的整行 例如,在下图中,不应显示汽油、零售和批发,因为它们在“总计”部分的值均为0.00美元 我编写的jQuery示例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");
$('#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您是否看到行重新出现在我回答中的代码段中?是的,我看到了。如果我多次单击“提交”,他们会离开一会儿,然后回来,这是不可能的。至少在我的答案片段中没有。函数运行后,不会重新加载或更改输出。