2011-08-12 10 views
0

Firefoxと同様に、複数のノードにわたるテキストを見つける方法を探しています。指定したHTMLで複数のノードにまたがるテキストを見つける

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

私はFirefoxのFのctrl +によるテキスト "イプサム悲しみ" を検索すなわち、そのテキストを選択します。 Rangeオブジェクトを作成します。

私はテキストノード内のテキストを簡単に検索できます(ビデオFind text string using jQuery?)が、これは上の例では機能しません。

+0

タグを無視することを意味しますか? – ianace

+0

言い方をすると - はい。しかし、私はRangeを作成する能力を持っていなければなりません(つまり、そのテキストを選択し、何とか強調してください)。私はそれを明確に立てていない場合は申し訳ありません。 – jesper

答えて

1

これは、indexOfの引数として指定されたテキストを含むすべてのp要素を選択します。

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

はそれがhereの作業を参照してください:あなたの例ではbタグは問題ではありませんので、text方法は、要素のすべてのテキストノードの内容を取得します

+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

関連する問題