Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Поиск на странице (https://javascript.ru/forum/jquery/2199-poisk-na-stranice.html)

no_name 18.11.2008 10:26

Поиск на странице
 
Заметил, что большинство пользователей редко используют стандартные средства поиска на странице (ctrl+f). Поэтому страницы, содержащие много данных, например каталоги либо отпугивают посетителей, либо заставляют помучиться. И проводить в данной ситуации ликбез о существующих браузерах и их функционале не совсем уместно.

Хотелось бы реализовать простой и удобный поиск там, где это действительно может быть необходимо. Мне нравиться, как работает фильтр друзей вконтакте http://vkontakte.ru/friend.php

Я не являюсь программистом, поэтому прошу помочь местных гуру кодинга подсказать мне простой способ реализации подобной фичи на сайте. Думаю, многим может пригодиться такой функционал. Желательно на основе jQuery дабы не плодить подключаемые библиотеки.

Snipe 18.11.2008 12:14

str = document.getElementsByTagName('body')[0].innerHTML;
str.indexOf(what_you_need);

=))

Андрей Параничев 18.11.2008 16:47

no_name,
Это комплексная задача, поэтому простого решения, которое будет работать везде, не существует.

Вконтакте это работает примерно следующим образом:
1. При вводе в поле фильтра вызывается обработчик.
2. Проходит цикл по всем ссылкам на друзей (содержащие их имена).
3. Если содержание ссылки не содержит искомой подстроки, блок скрывается.

Другими словами без конкретного примера вам помочь будет сложно.

no_name 20.11.2008 11:06

Именно так.
+ не только по именам поиск
+ найденное выделяется цветом

Очень не хочется мне просто тупа выкорчёвывать код из контакта. Хотелось бы на основе jQuery. Уверен, что кто-то уже делал подобное. Знать бы хотя бы направление, где копать.

sidor 07.09.2010 13:26

подниму старую тему чтобы не поздавать новую.
сделал такой поиск как на http://vkontakte.ru/friends.php с помощью метода .search()

А как быть с выделением найденного текста? Опять прогонять регулярной через .replace() или есть более гуманные способы?


Часовой пояс GMT +3, время: 17:09.