#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
тега.
Вот некоторая документация для вас:
.parent()
: http://api.jquery.com/parent.closest()
: http://api.jquery.com/closest
Комментарии:
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");