jQuery - поиск на странице, как в браузере - PullRequest
1 голос
/ 01 февраля 2010

Я пытаюсь выполнить поиск на странице, как в современных браузерах с STRG + F. Я пытался:

$("#mydiv").find(':contains(\'mySearchString\')').prepend('found you!');

Проблема в том, что jQuery добавляет вас несколько раз, потому что есть несколько элементов, у которых есть строка. Пример:

Found you<div>
   Found you<ul>
      Found you<li>
         Found you<a>mySearchString</a>
      </li>
   </ul>
</div>

Ответы [ 2 ]

2 голосов
/ 01 февраля 2010
$('#mydiv').find(':contains(\'mySearchString\')').contents().filter(function(){return this.nodeType == Node.TEXT_NODE}).prepend('found you!');

выберет только последний внутренний текстовый узел. Если вы используете IE, используйте константу 3 вместо Node.TEXT_NODE.

1 голос
/ 01 февраля 2010

Вы можете сделать:

$("#mydiv").find(':contains(\'mySearchString\')').eq(0).prepend('found you!');

, чтобы выделить первый матч.

В противном случае вы можете просто сказать, что он работает как Google Chrome, который сразу выделяет все поисковые запросы;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...