JQuery选择行中td内包含特定文本的所有行

van*_*van 21 jquery jquery-selectors

我有一个表,我试图选择所有包含文本'Test'的td的行,然后在所有匹配的行上隐藏带有'ms-vb-icon'类的td

我真的有下面的代码,但这只隐藏了最后一个匹配行上的类

 $("td:contains('test'):last").parent().children(".ms-vb-icon").css("visibility","hidden");
Run Code Online (Sandbox Code Playgroud)

所以我试过这个,但它不起作用......

 $("tr:has(td:contains('test')").each(function(){
  (this).children(".ms-vb-icon").css("visibility","hidden");
  });
Run Code Online (Sandbox Code Playgroud)

简化的html看起来像这样:

<table>
<tbody>
<tr>
<td class=ms-vb-icon></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>test</td>
</tr>
</tbody>
<table>
Run Code Online (Sandbox Code Playgroud)

sje*_*397 32

尝试:

$("tr td:contains('test')").each(function(){
  $(this).siblings('td.ms-vb-icon').css("visibility","hidden");
});
Run Code Online (Sandbox Code Playgroud)

在这里演示.

  • 孩子们属于td,所以td是父母.兄弟姐妹属于td旁边,所以它是同一个tr中的另一个td. (2认同)

小智 8

我猜你错过了')'.它对我有用:

$("tr:has(td:contains('1'))").each(function () {
Run Code Online (Sandbox Code Playgroud)


Lor*_*nzo 6

试试吧

$("tr:has(td:contains('test')").each(function(){
    $(this).parent().children(".ms-vb-icon").css("visibility","hidden");
});
Run Code Online (Sandbox Code Playgroud)

该班.ms-vb-icon是一个孩子tr,而$(this)功能指td