0

一致する文字列を選択し、強調表示してリンクに変換したい。これまでのところ、jsFiddle で動作します。

しかし、同じスクリプトを asp.net Web フォームで使用しようとすると、次のエラーが発生します。

SyntaxError: invalid quantifier
[Break On This Error]   

var pattern = new RegExp("("+this+")", ["gi"]);

実際のコード

function HighlightKeywords(keywords)
{        
var el = $("#article-detail-desc");
$(keywords).each(function()
{
    var pattern = new RegExp("("+this+")", ["gi"]);
    var rs = "<a href='search.aspx?search=$1'<span style='background-color:#FFFF00;font-weight: bold;background-color:#FFFF00;'>$1</span></a>";
    el.html(el.html().replace(pattern, rs));
});
}       

HighlightKeywords(["got", "the","keywords", " tags " ]);

http://jsfiddle.net/LE3sg/6/

asp.net Webフォームページでこのエラーが発生し続ける理由がわかりません

4

1 に答える 1

1

jQuery で配列をループするときeachは、常にコールバックで引数を使用して配列要素にアクセスし、メソッドを使用するの$.eachではなくメソッドを使用する必要があります。$(selector).each

$.each(keyowrds, function(index, item)
{
    var pattern = new RegExp("("+item+")", ["gi"]);

使用しているコードではtypeof this、コンソールにログインすると、実際には文字列ではないことがわかります

API リファレンス: http://api.jquery.com/jQuery.each/

于 2013-04-07T11:53:10.923 に答える