0

我需要一个功能,我必须突出/替换文章正文的匹配标签/关键字,并将这些匹配的标签/关键字变成如下所示的链接

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

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

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

在这种情况下,它也会更改上面的链接,因为它US匹配数组元素之一,同时遍历内容 N 次

我将不胜感激这方面的帮助,以便该功能仅更改单词而不是单词的任何匹配部分,并在执行相同操作时忽略 HTML 标记

部分代码采用 ASP.Net 格式,例如 <%= _pPID %>;

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 回答