0

以下のコードは、キーワードを強調表示するために使用している JavaScript 関数の一部です。

        for (var i = 0; i < keywords.length; i++)
        {
            var a = new RegExp(keywords[i], "igm");
            container.innerHTML = container.innerHTML.replace(a, "<span style='background:#FF0;'>" + keywords[i] + "</span>");    
        }

実際、ユーザーが結果をクリックできるようにしながら、検索結果の単語を強調表示します。問題は、ユーザーが結果をクリックして、詳細を含むページに転送されたときに発生します。URL 変数の真ん中にあるのは「span」タグです。

        details.aspx?id=2<span style='background:#FF0> /<span>&name=..

これにより、詳細ページが適切に表示されなくなります。問題の行をコメントアウトして以下のコードを使用すると、変数はスムーズに通過しますが、キーワードは強調表示されません。

             container.innerHTML = container.innerHTML.replace(a keywords[i] );

私の質問は、変数がスムーズに渡され、キーワードが強調表示されたままになるように、URL から span タグを削除するにはどうすればよいですか?

4

1 に答える 1

0

文字列でテキスト検索を行っており、コードがタグ内の属性で一致しているためです。単純な検索と置換を行うことはできず、タグの照合に正規表現を使用しないでください。

于 2013-10-23T22:20:44.393 に答える