Фильтр полей в таблице по содержимому колонок. Можно точнее нужно использовать на несколько колонок одновременно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
var filters = []; function apply_filter(table,col,text) { filters[col] = text; $(table).find('tr').each(function(i){ $(this).data('passed', true); }); for(index in filters) { if(filters[index] !== 'any') { $(table).find('tr td:nth-child('+index+')').each(function(i){ if($(this).text().indexOf(filters[index]) > -1 && $(this).parent().data('passed')) { $(this).parent().data('passed', true); } else { $(this).parent().data('passed', false); } }); } } $(table).find('tr').each(function(i){ if(!$(this).data('passed')) { $(this).hide(); } else { $(this).show(); } }); } |
Использование:
1 2 3 4 5 6 7 8 9 |
//apply_filter(selector,column,text); apply_filter('table tbody',2,'any'); // сбросить фильтр колонки можно через слово any apply_filter('table tbody',2,'word'); // ищет 'word' во второй колонке таблицы //сбросить полностью filters = []; apply_filter('.table tbody', 1, 'any'); |