Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2015, 20:40
Новичок на форуме
Отправить личное сообщение для Zimishe Посмотреть профиль Найти все сообщения от Zimishe
 
Регистрация: 23.03.2015
Сообщений: 5

альтернатива :contains
Здравствуйте
Есть таблица из БД с id=output, есть поле поиска с id=search - есть код поиска по таблице и скрытия строк, в которых не найдено введенных данных
$(document).ready(function()	{
			
		$('#search').keyup(function()	{	// при вводе в поле

 		var a = $('#search').val();		// значение поля search в переменную

		$('#output tr').show();		// показываем все поля
		
		if ('#output td:contains("'+a+'")')	{	// если содержит значение из поля
						
		   $('#output tr:not(:contains("'+a+'"))').hide();     // то прячем поля, не содеращие значения
		
		}
 	})     			 
});


http://new.supersprox.eu/output-db/output_database.php - ссылка на таблицу.

Проблема - contain ищет по всей таблице, и это мне бы не мешало, но я хочу сделать поиск в каждом столбце по отдельности - через :nth-child(переменная) - но contain ищет по всей таблице, находит введённый символ где-то в случайной ячейке, и соотв. не скрывает её.
Есть ли альтернатива использования contains для такого поиска?
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2015, 20:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Не contain ищет по всей таблице, а вы не задаете условия поиска.
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2015, 20:57
Новичок на форуме
Отправить личное сообщение для Zimishe Посмотреть профиль Найти все сообщения от Zimishe
 
Регистрация: 23.03.2015
Сообщений: 5

if ('#output td:nth-child(1):contains("'+a+'")')	{	// если содержит значение из поля
			
    $('#output tr:not(:contains("'+a+'"))').hide();
		}

пробую так - ищу в первом столбце, но строку, в которой в первом столбце нет вводимого - не скрывает. в какую сторону копать?
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2015, 21:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сперва надо обратить внимание на условие - у вас просто строка которая всегда будет возвращать true.
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2015, 21:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

laimas,

$(document).ready(function() {
    $("#search").keyup(function() {
        var a = $("#search").val(),
            a = ":has(td:nth-child(1):contains('" + a + "'))";
        $("#output tr").hide().filter(a).show()
    })
});
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2015, 22:06
Новичок на форуме
Отправить личное сообщение для Zimishe Посмотреть профиль Найти все сообщения от Zimishe
 
Регистрация: 23.03.2015
Сообщений: 5

ваш код ищет совпадения в строке nth-child(какое-то число), мне же нужен поиск в конкретном столбце
Ответить с цитированием
  #7 (permalink)  
Старый 23.03.2015, 22:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Zimishe
ваш код ищет совпадения в строке nth-child(какое-то число), мне же нужен поиск в конкретном столбце
не понимаю
Ответить с цитированием
  #8 (permalink)  
Старый 23.03.2015, 22:12
Новичок на форуме
Отправить личное сообщение для Zimishe Посмотреть профиль Найти все сообщения от Zimishe
 
Регистрация: 23.03.2015
Сообщений: 5

Сообщение от рони Посмотреть сообщение
не понимаю
есть несколько столбцов, нужно искать совпадение с введёнными данными только в нём, совпадения в соседних столбцах - скрывать, как и строки, где совпадений нет вовсе. хочу сделать для каждого столбца свой input со своим id=rowname. но для понимания пока просто код, который ищет в столбце под каким-то номером.
Ответить с цитированием
  #9 (permalink)  
Старый 23.03.2015, 22:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Zimishe,

$(document).ready(function() {
    $("#search").keyup(function() {
        var a = $("#search").val(),
            a = ":has(td:nth-child(1):contains('" + a + "'))";
        $("#output tr").hide().filter(a).show().find('td:not(:nth-child(1))').hide()
    })
});
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2015, 22:26
Новичок на форуме
Отправить личное сообщение для Zimishe Посмотреть профиль Найти все сообщения от Zimishe
 
Регистрация: 23.03.2015
Сообщений: 5

Сообщение от рони Посмотреть сообщение
Zimishe,

$(document).ready(function() {
    $("#search").keyup(function() {
        var a = $("#search").val(),
            a = ":has(td:nth-child(1):contains('" + a + "'))";
        $("#output tr").hide().filter(a).show().find('td:not(:nth-child(1))').hide()
    })
});
лады, видно это слишком сложно для меня пока-что)
спасибо за помощь
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
альтернатива getElementsByClassName Nailya Internet Explorer 2 03.03.2015 13:55
Альтернатива eval() Satansoft Общие вопросы Javascript 2 03.02.2015 20:22
Функция-обертка как альтернатива глобальным переменным Dimaz jQuery 3 11.12.2012 22:12
jQuery Feature Carousel Plugin - Есть ли альтернатива? lraido AJAX и COMET 0 09.11.2011 21:39
Альтернатива insertAdjacentHTML в Mozilla FireFox ПавелЪ Общие вопросы Javascript 4 19.01.2009 01:22