我需要一个功能,我必须突出显示/替换文章主要文本的匹配标签/关键字,并将匹配的标签/关键字转换为如下所示的链接
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>
答案 0 :(得分:0)
您正在传递一个字符串,该函数适用于数组。尝试使用:
// array format = ['one', 'two','three','US','UK'];
而不是
// array format = " 'one', 'two','three','US','UK' ";