Найти текст, охватывающий несколько узлов - PullRequest
0 голосов
/ 12 августа 2011

Я ищу способ найти текст, охватывающий несколько узлов, аналогично тому, как это делает Firefox, например.

С заданным HTML:

<p>Lorem ipsum <b>dolor</b> sit amet.</p>

Когда я ищу текст "ipsumdolor "ctrl + f Firefox выделит этот текст, т.е.создаст объект (ы) Range.

Я знаю, что могу легко искать текст в текстовых узлах (смотри Найти текстовую строку, используя jQuery? ), но это не работает в приведенном выше примере.

Ответы [ 2 ]

1 голос
/ 12 августа 2011

window.find это именно то, что я ищу.

1 голос
/ 12 августа 2011

Это выберет все элементы p, которые содержат текст, указанный в качестве аргумента для indexOf.Метод text получает содержимое всех текстовых узлов элемента, поэтому тег b в вашем примере не будет иметь значения:

$("p").filter(function() {
  return $(this).text().indexOf("ipsum dolor") > -1;  
});

Видите, как это работает здесь .

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