2011-08-12 11 views
0

Firefox와 비슷한 방식으로 여러 노드에 걸쳐 텍스트를 찾는 방법을 찾고 있습니다. 주어진 HTML로여러 노드에 걸친 텍스트 찾기

:

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

내가 즉, 텍스트를 선택합니다 파이어 폭스 F Ctrl 키 +에 의해 텍스트 "ipsum의 슬픔"을 검색

. Range 객체를 생성합니다.

텍스트 노드 (텍스트 : Find text string using jQuery?)에서 텍스트를 쉽게 검색 할 수 있지만 위의 예에서는 작동하지 않습니다.

+0

태그를 무시한다는 의미입니까? – ianace

+0

말하기의 방식으로 - 그렇습니다.하지만 범위를 만들 수 있어야합니다 (즉, 텍스트를 선택하고 어떻게 든 강조 할 수 있어야합니다). 미안해. 내가 분명히 서 있지 않으면. – jesper

답변

1

indexOf에 대한 인수로 지정된 텍스트를 포함하는 모든 p 요소를 선택합니다. text 방법은 요소의 모든 텍스트 노드의 내용을 얻는다, 그래서하지 않습니다 문제가 귀하의 예제에서 b 태그 :

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

here 작업을 참조하십시오.

+0

예,이 경우 작동하지만 예제에서 해당 텍스트 (ipsum dolor) 만 강조하고 싶습니다. – jesper

+0

나는 유일한 방법은 직업을 수행하는 정교한 알고리즘을 개발하는 것이라고 생각한다. – jesper

1

window.find 내가 찾고있는 것입니다.

+0

whatwg.org에서의 토론은 그것이 오페라에 없다는 것을 시사한다 :-(http://developers.whatwg.org/dnd.html#text-search-apis – eimaj

+0

예 :(이것은 FF, Chrome, Safari에서 작동합니다 .IE에서는 TextRange 객체를 사용할 수 있지만 Opera에서 비슷한 기능을 찾을 수 없습니다 : / – jesper

관련 문제