jquery – 如果td不包含文本,则隐藏tr

如果它的td不包含text2,我想隐藏tr.
当我使用此代码时:

$('td:contains("text2")').parent().toggle()}))

它隐藏了在td中包含text2的tr,但我想在td中隐藏所有不包含text2的表行,所以我编写了这段代码

$('td:not(:contains("text2"))').parent().toggle()}))

但它隐藏了所有行.

jsfiddle example

解决方法

您目前遇到的问题是,如果td不包含text2,它将隐藏整行,无论兄弟td是否包含文本.

在不改变任何标记的情况下,我能想到的最好的事情是选择每行的第一个td,然后在父tr上过滤:

$('td:first-child').parent('tr:not(:contains("text2"))').toggle();

或者你可以直接在tr上过滤,省略那些有th元素的东西(这样你的行包含th不会被隐藏):

$('tr:not(:has(th)):not(:contains("text2"))').toggle();

Here’s a fiddle

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...