Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2014, 13:07
Аспирант
Отправить личное сообщение для Alfer Посмотреть профиль Найти все сообщения от Alfer
 
Регистрация: 28.06.2012
Сообщений: 97

Фильтрация данных
Добрый день! использую скрипт для фильтрации данных в поле поиск:

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);
	});
}


скрипт работает, но есть одна проблема, если я ввожу слово: материал, ничего не находит, если я введу Материал - покажет мне Материал, как сделать так чтоб введя с регистром или без, показало мне Материал

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2014, 13:28
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Очевидно, что в таком случае нельзя использовать для поиска псевдо-селектор :contains, тк он является регистрозависимым.

http://api.jquery.com/contains-selector/
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2014, 13:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

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()}
        });
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2014, 15:27
Аспирант
Отправить личное сообщение для Alfer Посмотреть профиль Найти все сообщения от Alfer
 
Регистрация: 28.06.2012
Сообщений: 97

Спасибо, помогло
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2014, 15:58
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

рони,
Не даешь никаких шансов ТСам разобраться )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не понимаю JavaScript. Как сделать ожидание события загрузки данных? xintrea AJAX и COMET 7 01.06.2013 17:18
Проблемма с отправкой данных на сервер deng22 jQuery 2 03.06.2012 14:40
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32
jqGrid. локальная обработка данных DarkN jQuery 0 25.01.2011 23:55