Фильтрация данных
Добрый день! использую скрипт для фильтрации данных в поле поиск:
function FilterInit(){ jQuery("#sorting-table tr:has(td)").each(function(){ var t = jQuery(this).text().toLowerCase(); //all row text jQuery("<td class='indexColumn'></td>").hide().text(t).appendTo(this);});//each tr jQuery("#sort-field").keyup(function(){ if (this.value != ''){ var s = jQuery(this).val().split(" "); //show all rows. jQuery("#sorting-table tr:hidden").show(); jQuery.each(s, function(){ jQuery("#sorting-table tr:visible .indexColumn:not(:contains('"+ this + "'))").parent().hide(); }); } else {jQuery("#sorting-table tr:hidden").show();} tableHeight = jQuery("#sorting-table tbody").height() + jQuery("#sorting-table thead").height(); jQuery(".table-holder3").height(tableHeight); });//key up. jQuery(".sort-list a").click(function(){ var s = jQuery(this).text().split(" "); //show all rows. jQuery("#sorting-table tr:hidden").show(); jQuery.each(s, function(){ jQuery("#sorting-table tr:visible .indexColumn:not(:contains('"+ this + "'))").parent().hide(); }); tableHeight = jQuery("#sorting-table tbody").height() + jQuery("#sorting-table thead").height(); jQuery(".table-holder3").height(tableHeight); return false; }); jQuery(".sort-table .all").click(function(){ jQuery("#sorting-table tr:hidden").show(); tableHeight = jQuery("#sorting-table tbody").height() + jQuery("#sorting-table thead").height(); jQuery(".table-holder3").height(tableHeight); }); } скрипт работает, но есть одна проблема, если я ввожу слово: материал, ничего не находит, если я введу Материал - покажет мне Материал, как сделать так чтоб введя с регистром или без, показало мне Материал Спасибо |
Очевидно, что в таком случае нельзя использовать для поиска псевдо-селектор :contains, тк он является регистрозависимым.
http://api.jquery.com/contains-selector/ |
Alfer,
jQuery("#sorting-table tr:visible .indexColumn:not(:contains('"+ this + "'))").parent().hide(); заменить на var el = jQuery("#sorting-table tr:visible .indexColumn"), reg = new RegExp(this, 'i'); el.each(function(indx, element){ if(!reg.test($(element).text())) {$(element).parent().hide()} }); |
Спасибо, помогло
|
рони,
Не даешь никаких шансов ТСам разобраться ) |
Часовой пояс GMT +3, время: 00:03. |