こんにちは、私は次のことを達成しようとしています: パネル (div) で構成されるサイト (実際にはある種の Web アプリ) を作成しています。
パネルの 1 つで、別の div にかなりの量のテキストが配置されています。
<div class="panel">
<div id="substantialText">
bla
bla
bla
bla
</div>
</div>
ヘッダーの入力フィールドを使用してこのテキストを検索し、テキストの場所に移動できるようにする必要があります (入力フィールドにテキストを入力すると、関数「findText()」が呼び出されます...これに何を書き込むかを見つける必要があります関数:
<div class="panel">
<header>
<div>
<input type="text" id="searchField" onKeyUp="findText();" /><br/>
</div>
</header>
<div id="substantialText">
bla
bla
bla
bla
</div>
</div>
私は次のものを持っていますが、立ち往生しています(テキストのinnerhtmlを検索フィールドの値と比較しています):
function findText()
{
var streng = document.getElementById(substantialText).innerHTML;
var search = document.getElementById(searchField).value.toString().toLowerCase();
if(document.getElementById(felt).value.length == 0)
{
//don't judge me
}
else
{
var rgxp = new RegExp(search, "gi");
// Getting number of hits...works as intented
alert(streng.match(rgxp).length);
}
}
ヒットの配列を何らかの形でその位置と組み合わせて使用し、配列のインデックスを使用してヒットを循環できるようにすることを考えています。しかし、どうすればこれを達成できるかわかりません。
「substantialText」を取得してヒットまでスクロールするにはどうすればよいですか (インデックスが指定されている場合)。IDまたはアンカーを含む要素に正常にジャンプできましたが、テキスト文字列だけで同じことを達成する方法に頭を悩ませることはできません。