Подтвердить что ты не робот

JQuery выбирает все строки, содержащие определенный текст внутри td в строке

У меня есть таблица, для которой я пытаюсь выбрать все строки, содержащие td, содержащие текст "Test", а затем спрятать td с классом "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>
4b9b3361

Ответ 1

Try:

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

Демо здесь.

Ответ 2

Я думаю, что вам не хватает ") '. Он работал у меня:

$("tr:has(td:contains('1'))").each(function () {

Ответ 3

Попробуйте

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

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