0

記事の本文の一致するタグ/キーワードを強調表示/置換し、それらの一致するタグ/キーワードを以下に示すようなリンクに変換する必要がある機能が必要です

en/search.aspx?language=en-US&issue=1&pageID=2&search=Something

私が使用している以下のコードは、キーワードに一致する場合に HTML を変更することを除いて正常に動作します。

以下のコードのロジックは単純です。次の形式でコード ビハインドから jquery 関数に配列を渡します。"[ 'one', 'two','three','US','UK' ]"

USこの場合、コンテンツを N 回ループしながら、配列要素の 1 つに一致するため、上記のリンクも変更されます。

関数が単語の一致する部分ではなく単語のみを変更し、同じことをしながらHTMLタグを無視するように、この点で助けていただければ幸いです

コードの一部は <%= _pPID %> のような ASP.Net 形式です。

function HighlightKeywords(keywords)
{        
    var el = $("#article-detail-desc");
    var language = "<%= _planguage %>";
    var pid = <%= _pPID %>;
    var issueID = <%= _pIssue %>; 

    // array format = " 'one', 'two','three','US','UK' ";

    $(keywords).each(function()
    {
        var pattern = new RegExp("("+this+")", ["gi"]);
         var rs = "<a class='ad-keyword-selected' href='en/search.aspx?Language="+language+"&PageId="+pid+"&issue="+issueID+"&search=$1' title='Seach website for:  $1'><span style='color:#990044; tex-decoration:none;'>$1</span></a>";
        el.html(el.html().replace(pattern, rs));
    });
}   

HighlightKeywords([<%= _pKeywords %>]);


<div id="article-detail-desc">

all the text related to article will be show displayed inside this div and any matching words will be replaced by the link <a></a> 
</div>
4

1 に答える 1

0

文字列を渡していますが、関数は配列で動作します。

使用してみてください:

// array format = ['one', 'two','three','US','UK'];

それ以外の

// array format = " 'one', 'two','three','US','UK' ";
于 2013-04-08T13:55:29.427 に答える