Javascript 使关键字自动全局链接

Javascript 使关键字自动全局链接,javascript,jquery,hyperlink,keyword,Javascript,Jquery,Hyperlink,Keyword,有没有一种方法可以让一个单词的每个实例自动变成一个链接 例如,每次我写“苹果”,它都会自动格式化为 我假设我可以使用javascript或者jquery 谢谢 非常简单的例子 jQuery var span = $('span'); span.html(function(i,html){ replaceTextWithHTMLLinks(html); }); // jQuery version 1.4.x function replaceTextWithHTM

有没有一种方法可以让一个单词的每个实例自动变成一个链接

例如,每次我写“苹果”,它都会自动格式化为

我假设我可以使用javascript或者jquery


谢谢

非常简单的例子

jQuery

var span = $('span');
    span.html(function(i,html){
        replaceTextWithHTMLLinks(html);
    }); // jQuery version 1.4.x


function replaceTextWithHTMLLinks(text) {
  var exp = /(apple)/ig;
    return text.replace(exp,"<a class='link' href='http://www.$1.com' target='_blank' >$1</a>"); 
}
var span=$('span');
html(函数(i,html){
用HTMLinks(html)替换文本;
}); // jQuery版本1.4.x
函数replacetextwithhtmlinks(文本){
var exp=/(苹果)/ig;
返回文本。替换(exp,“”);
}
html


一天一个苹果,一周七个苹果!

下面是一个简单的jQuery插件,它应该可以做到这一点。它将只选择文本节点,这样,如果您有一个类为
apple
或id为
apple
的元素,它就不会被替换。此外,如果你有一个链接
,它将不会被替换(可能比你需要的多一点,但我想我还是会发布它):

用法:

$("body").replacetext(/apple/gi, "<a href='http://www.$&.com'>$&</a>");
$(“body”).replacetext(/apple/gi,”);
工作示例:


请注意,由于使用
$(“*”)
选择器,这可能会很快变得效率低下。如果可能,您应该用更具体的内容替换它(或者完全删除
.find(“*”).andSelf()
部分,并向插件传递一个更具体的选择器)。

这将替换页面上所有跨距的HTML。在跨度上使用
each
来避免这种情况。首先,
each()
如何解决您的问题?。第二,这不是重点,只是一个例子。我甚至可以说
$('body')。OP没有提到这一切。:)如果使用
each
遍历所有跨距并分别替换它们的HTML(尽管在执行此操作之前,您可能需要测试关键字的存在性),那么它不会用相同的内容替换页面上的所有跨距…哦,我明白了。这是因为我使用的变量。更新为已修复。不,这看起来很完美!我将在一个非常好的secWorks中试用它,除了包含一些iframe:访问属性“document”的权限被拒绝的选择器。
(function($) {
    $.fn.replacetext = function(target, replacement) {
         // Get all text nodes:
         var $textNodes = this
                 .find("*")
                 .andSelf()
                 .contents()
                 .filter(function() {
                     return this.nodeType === 3 &&
                         !$(this).parent("a").length;
                 });

         // Iterate through the text nodes, replacing the content
         // with the link:
         $textNodes.each(function(index, element) {
             var contents = $(element).text();
             contents = contents.replace(target, replacement);
             $(element).replaceWith(contents);
         });
    };
})(jQuery);
$("body").replacetext(/apple/gi, "<a href='http://www.$&.com'>$&</a>");