Выделение строки в jQuery с определенным содержимым в td

#jquery #html-table #tablerow

#jquery #html-таблица #tablerow

Вопрос:

Пока что я могу заставить свой код выделять конкретный td, но еще лучше было бы выделить всю строку целиком. Кто-нибудь знает, как это сделать?

 var mySearch = 'No';
$('table tbody tr td:contains("'   mySearch   '")').filter
(function(){
if($.trim($(this).text()) == mySearch)
    $(this).addClass("prequal-status-n");       
}); 
  

Комментарии:

1. С таким же успехом вы могли бы потерять :contains бит селектора. Это значительно замедлит работу вашего кода, поскольку это расширение jQuery, поэтому отключает встроенную функциональность браузера (querySelectorAll). Поскольку вы выполняете == mySearch тест позже, вам вообще не нужен :contains вызов.

Ответ №1:

Изменив $(this).addClass("prequal-status-n") на $(this).closest('tr').addClass("prequal-status-n") , вы можете выделить всю строку, а не только ячейку в строке.

Вот jsfiddle использования .closest() для выбора tr родительского тега ячейки: http://jsfiddle.net/jasper/LhbUG /

Примечание: .closest('tr') может быть заменено на .parent() , поскольку прямым родителем td тега является tr тег. Просто имейте в виду, что использование .parent() ограничивает ваш $(this) селектор тем, что он является прямым потомком tr тега.

Вот некоторая документация для вас:

Комментарии:

1. В этом случае я бы использовал parent(), я не вижу необходимости в closest()

Ответ №2:

Вы могли бы использовать closparentest() и найти tr

 var mySearch = 'No';
$('table tbody tr td:contains("'   mySearch   '")').filter
(function(){
if($.trim($(this).text()) == mySearch)
    $(this).parent().addClass("prequal-status-n");       
})
  

Ответ №3:

Попробуйте

 var mySearch = 'No';
$('table tbody tr td:contains("'   mySearch   '")')
                   .parent("tr").addClass("prequal-status-n");
  

Ответ №4:

Вы хотите использовать ближайший метод для выбора, <tr> который содержит <td> :

 $(this).closest("tr").addClass(...);
  

Из документации API для closest :

Получаем первый элемент, соответствующий селектору, начиная с текущего элемента и продвигаясь вверх по дереву DOM.

Ответ №5:

Попробуйте что-то вроде этого:

 $("td:contains('"   mySearch   "')").closest("tr").toggleClass("prequal-status-n");