1

我正在尝试将一组关键字转换为我网站上的链接。我目前正在使用此代码,它将一个关键字变成一个链接。但是,现在我想将其扩展为有几个单词。链接将始终相同,但是,关键字会发生变化,因此链接文本也必须反映这一点。

这是我目前正在使用的代码:

<script type="text/javascript">
(function($) {
  var thePage = $("body");
  thePage.html(thePage.html().replace(/Wedding Stationery/ig, '<a class="discrete" href="http://www.kateguest.com">wedding stationery</a>'));
})(jQuery)
</script>

如何扩展它以使用 5 或 6 个关键字?

4

2 回答 2

2

循环进行替换。您可以$&在替换中使用来引用匹配的文本。

var keywords = ['wedding stationery', 'something else', 'other keyword'];
var thePage = $("body");
var theHtml = thePage.html();
for (i = 0; i < keywords.length; i++) {
    theHtml = theHtml.replace(new RegExp(keywords[i], 'ig'),
                '<a class="discrete" href="http://www.kateguest.com">$&</a>');
}
thePage.html(theHtml);

演示

于 2013-07-25T19:23:33.567 回答
1

我会建议这样的事情:

var keywordsArray = ["place", "all", "of the", "keywords in here like this"];
var thePage = $("body");

for (var i = 0; i < keywordsArray.length; i++) {
    thePage.find(":contains("+keywordsArray[i]+")").each(function(){
        var _this = $(this);
        var content = _this.html();
        content.replace(keywordsArray[i], '<a href="discrete" href="http://whateveryouwant.com/">' + keywordsArray[i] + '</a>');

        _this.html(content);
    });
};
于 2013-07-25T19:26:30.500 回答