Доброго времени суток, уважаемые!
Как можно объединить две одинаковых функции для поиска строк в таблице?
Первая (по input)
$('#search_table').keyup(function(){
let search = this;
$('#tabname tbody tr').find('input[name^=name]').each(function() {
if($(this).val().toLowerCase().indexOf($(search).val().toLowerCase()) === -1) {
$(this).closest('tr').hide();
}
else {
$(this).closest('tr').show();
}
});
});
Вторая (по атрибуту)
$('#search_card').keyup(function(){
let search = this;
$('#tabname tbody tr').find('[data-item-name="name"]').each(function() {
if($(this).text().toLowerCase().indexOf($(search).val().toLowerCase()) === -1) {
$(this).closest('tr').hide();
}
else {
$(this).closest('tr').show();
}
});
});
Смысл у них абсолютно одинаков - найти строки с задаваемым в поиске значением и вернуть результат, убрав остальное. Разница лишь в том, что первая ищет
в значениях поля input[name^=name], а вторая
в тексте элемента с атрибутом [data-item-name="name"].
Вот никак не могу сообразить, как их объединить, прописав условие
если $(this).val()
или $(this).text()
Помогите, плиз!