Я пытаюсь реализовать функцию быстрого поиска/фильтрации в своей таблице с помощью jquery. В сущности, я хочу скрыть все строки, у которых нет строки, которую я ищу из поискового ящика, чтобы быть скрытым.Как правильно настроить селектор jquery?
У меня есть динамически созданная таблица и текстовое поле, используемое в качестве фильтра для списка.
Таблица:
<table id="report-table" class="table">
<thead>
<tr>
<th class="">client</th>
<th class="">coach</th>
<th class="">groups</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name">John</td>
<td class="coach">Peter </td>
<td class="groups"> Skiers </td>
</tr>
</tbody>
Ihave функции, привязанной к событию изменения в текстовом окне поиска. В этой функции я по существу хочу, чтобы выберет все tr, которые не содержат текстовую строку в столбце имени или тренера, и добавьте к ним класс. Я пробовал много вещей, но не получил синтаксис правильно, как он должен быть написан?
hideSearch: function(e){
console.log("hideSearch called");
var searchValue = this.$el.find('.search-text').val();
if(!searchValue){
console.log("hideSearch: empty search param");
this.$el.find('tr').removeClass('hidden');
}
else{
console.log("hideSearch: searched for: " + searchValue);
//$('(#name, #groups):contains:not("'+searchValue+'")').parent().addClass('hidden');
var selection =$('#name, #groups').('*:contains("'+searchValue+'")');
console.log(selection);
//console.log($('#name, #groups').('*:contains("'+searchValue+'")'));
//$('(#name, #groups):contains("'+searchValue+'")').parent().addClass('hidden');
//$('#name, #groups').('*:contains:not("'+searchValue+'")').parent().addClass('hidden');
}
возможно релевантные для вас: http://stackoverflow.com/questions/15219790/to-apply-a-css-style-to-every-td-element-of-table/15219877#15219877 – Vogel612
Идентификаторы должны быть уникальными ! –
См. Это http://jsfiddle.net/pythondave/JUZDf/ –