JQuery выбирает все строки, содержащие определенный текст в тд в строке - PullRequest
20 голосов
/ 03 декабря 2010

У меня есть таблица, для которой я пытаюсь выбрать все строки с тд, содержащим текст «Тест», а затем скрыть тд с классом «ms-vb-icon» на всех подходящих строках

У меня был приведенный ниже код, но он скрывал только класс в последней соответствующей строке

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

Итак, я попробовал это, но он не работает ...

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

Упрощенный просмотр HTMLкак это:

<table>
<tbody>
<tr>
<td class=ms-vb-icon></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>test</td>
</tr>
</tbody>
<table>

Ответы [ 3 ]

32 голосов
/ 03 декабря 2010

Попробуйте:

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

Демо здесь .

8 голосов
/ 19 октября 2012

Я думаю, что вы пропали без вести ')'. Это сработало для меня:

$("tr:has(td:contains('1'))").each(function () {
6 голосов
/ 03 декабря 2010

Попробуйте с

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

Класс .ms-vb-icon является дочерним по отношению к tr, тогда как функция $(this) относится к td

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...