1
jQueryを使って簡単な「検索機能」を書いた。ボックスにテキストを入力すると、検索したページのテキストが返されます。ただし、「the」という単語を入力すると、検索結果は<thead></thead>
に戻り、「the」が強調表示されます。どうすればそれらのようなhtmlタグが見つからないようにすることができますか?私が 'edit'とタイプすると同様のことが起こり、イメージが 'edit ....'というイメージを返し、イメージが消えて 'edit'が強調表示されます。regexpがhtmlタグを見つけた
私はそれがどこにあるのかと思うので、要素で始まる行でいくつかのことを試しました。
function highliter(word, id){
$('*').removeClass('highlight');
var rgxp = new RegExp(word, 'g');
var repl = '<span class="highlight">' + word + '</span>';
var element = document.getElementById(id);
element.innerHTML = element.innerHTML.replace(/word/g, repl);
// element.innerHTML = element.innerHTML.replace(rgxp, repl);
$('html, body').scrollTop($(".highlight").offset().top - 126);
[ 'textContent'(https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent)? – gcampbell
HTMLではなくテキストの検索を実行する必要がありますが、置き換えるときに問題が発生します。ネストされた要素はこれをさらに困難にします。これはかなり大きな地雷です。 – Archer
@gcampbell - texContentを置き換えると、htmlが置換文字列の一部になることができません。p –