0

この検索/置換JSを変更して、2つの単語を同時に置換できるようにします。

私のコードは、ここに示すように使用する最後の単語を除いて機能します

4

1 に答える 1

1

string.replaceを呼び出すと、元の文字列自体を変更せずに、置き換えられたテキストを含む新しい文字列が返されます。

だからあなたのコード:

replaced = haystackText.replace(...)

更新されたテキストを変数「replaced」に設定していますが、変数「haystackText」は更新されていません。

さらに、これを行うので:

if (haystackText.length == 0) {
      haystackText = document.getElementById("haystack").innerHTML;
 }

メソッドが最初に呼び出されたときにのみhaystackTextが設定され、2回目は設定されません。haystackTextを(メソッドの外で)グローバル変数として残す必要がないように思われるので、これを変更します。

 if (haystackText.length == 0) {
      haystackText = document.getElementById("haystack").innerHTML;
 }

これに:

var haystackText = document.getElementById("haystack").innerHTML;

あなたの問題を解決するでしょう。

于 2012-05-16T22:25:09.030 に答える