2

キーワードを取得し、CSS で強調表示/色付けするプログラムがあります。

最終的に強調表示される単語を変更したいので、jQueryを使用しています。すべてユーザーが行います。

現時点での問題は、何も強調表示されていないことではなく(yay)、代わりにすべてが強調表示されていない(ああ、いや)ということではありません。いくつかの単語を通過して強調表示するように設定していますが(バルーン、ドロシー、サイクロン)、特定の単語のすべてが色付けされるわけではありません。

このjsFiddleのことが、私ができるよりもうまく説明できることを願っています。2 行目を見ると、最初の単語とキーワードである Dorothy が思ったほど赤くないことがわかります。

ありがとう。支離滅裂で申し訳ありませんが、フィードバックをお待ちしております

4

1 に答える 1

4

これはあなたが望むものですか?

$(function(){
     var keyWord = new Array("Dorothy","cyclone","miles","house","balloon");
     var regexp = new RegExp(keyWord.join("|"),"g");
     $('#oz li').html( function(i,value){
          return value.replace(regexp ,
               '<span containsStringImLookingFor="true" id="$&">$&</span>');
     });
});

説明

regexp配列にリストされている/Dorothy|cyclone|miles|house|balloon/gすべての単語に一致する正規表現です。メソッドは、一致したすべての単語を ' ' テンプレート.replace()で置き換えます。<span containsStringImLookingFor="true" id="{matched word}">matched word</span>replace メソッドの ' $&' は、現在一致している単語を示します。

于 2012-07-18T18:14:25.693 に答える