如果其td不包含文本,请隐藏tr

Dim*_*tri 4 jquery html-table hide

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

$('td:contains("text2")').parent().toggle()}))
Run Code Online (Sandbox Code Playgroud)

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

$('td:not(:contains("text2"))').parent().toggle()}))
Run Code Online (Sandbox Code Playgroud)

但它隐藏了所有行.

jsfiddle的例子

bil*_*can 6

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

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

$('td:first-child').parent('tr:not(:contains("text2"))').toggle();
Run Code Online (Sandbox Code Playgroud)

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

$('tr:not(:has(th)):not(:contains("text2"))').toggle();
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴