微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐