jQuery函数用链接标记替换匹配的标记/关键字

时间:2013-04-08 13:47:31

标签: javascript jquery asp.net

我需要一个功能,我必须突出显示/替换文章主要文本的匹配标签/关键字,并将匹配的标签/关键字转换为如下所示的链接

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

下面我正在使用的代码工作正常,但它甚至会更改HTML,如果它与关键字匹配。

以下代码的逻辑很简单我将数组从代码后面传递给jquery函数,格式如下"[ 'one', 'two','three','US','UK' ]"

在这种情况下,它也会改变上面的链接,因为en - US匹配其中一个数组元素,而不是循环遍历内容N

我会很感激这方面的帮助,以便函数只更改单词而不是任何匹配的单词,并在执行相同操作时忽略HTML标记

部分代码为ASP.Net格式,如<%= _pPID%&gt ;;

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>

1 个答案:

答案 0 :(得分:0)

您正在传递一个字符串,该函数适用于数组。尝试使用:

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

而不是

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