2012-01-10 89 views
0

我試圖強調在一個Rails應用程序中的故事拉引述。我在另一個問題中發現了這個代碼,並稍微修改它以使用rails。以下是我在我看來所做的:使用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

你想更換什麼?這個功能沒有告訴我們很多。 – 2012-01-10 19:07:48

+0

一個字符串。你無法從函數中得知這一點? – Slick23 2012-01-10 19:09:16

+0

也許這就是問題所在。 A *字符串*不是*正則表達式*。即使你用它調用RegExp()。例如,如果*字符串*包含正則表達式文字,該怎麼辦。 – 2012-01-10 19:12:59

回答

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

完美,謝謝。 – Slick23 2012-01-10 19:24:02