2012-01-10 9 views
0

私は、レールアプリで物語のプルクォートを強調表示しようとしています。私はこのコードを別の質問で見つけ出し、それを少し修正してレールで動作させました。ここに私の見解では何をしているのですか:jQueryでテキストを選択

<%= content_for :jquery do %> 
     $.fn.highlight = function (str, className) { 
      var regex = new RegExp(str, "gi"); 

      return this.each(function() { 
       this.innerHTML = this.innerHTML.replace(regex, function(matched) {return "<span class=\"" + className + "\">" + matched + "</span>";}); 
      }); 
     }; 
     $('p').highlight('<%=j @story.pull_quote %>', 'highlight'); 
    <% end %> 

しかし、それは動作していないようです。私は本当にjavascriptで悪いです。

+0

何を置き換えようとしていますか?その機能は私たちにはあまり教えてくれません。 –

+0

文字列です。あなたはその機能からそれを知ることはできませんか? – Slick23

+0

それはおそらく問題です。 A *文字列*は正規表現*ではありません。たとえあなたが 'RegExp()'を呼び出しても。たとえば、*文字列*に正規表現のリテラルが含まれているとします。 –

答えて

2
  this.innerHTML = this.innerHTML.replace(regex, "<span class=\"" + className + "\">" + str + "</span>"); 
+0

パーフェクト、ありがとう。 – Slick23