最近、同様の問題を実行する必要があり、次のようなものを思いつきました。
<!DOCTYPE html>
<html>
<head>
  <title>HTML JS REPLACE</title>
  <script type="text/javascript">
  function convert(elem) {
    var content = document.getElementById(elem).innerHTML; // get HTML content for the given element
    var pattern = new RegExp(/hello/gi);
    content = content.replace(pattern,'hi');
    document.getElementById(elem).innerHTML = content; // put the replace content back
  }
  </script>
</head>
<body>
  <div id="content">
    Some text that includes both hello and hi. And a hello.
  </div>
  <script type="text/javascript">
    window.onload = convert('content');
  </script>
</body>
</html>
その結果、次のようなページが表示されます。
  hi と hi の両方を含むテキスト。そしてこんにちは。
元の情報源はまだ言っていますが:
  hello と hi の両方を含むテキスト。そしてこんにちは。
トリッキーな部分はほんの一部です。まず、body の下部に window.onload トリガーを含めて、JS を実行する前に DOM を完全にロードします。次に、JS から参照できる一意の ID を割り当てるトップレベルのブロック要素が必要です。第 3 に、convert 関数は正規表現を使用します。この正規表現は、文字列「hello」を「hi」に変更することで、大文字と小文字を区別しないグローバルな置換を実行します。
特定のアプリケーションでは、代わりにすべての発生をキャプチャしてループで解析する必要がある場合があります。これにより、パフォーマンスの問題が発生する場合と発生しない場合があります。気をつけて :)