0

我正在尝试用 html 标签替换文本。我正在使用这段代码:

  $('p').each(function () {
    $(this).text($(this).text().replace(/(http:\/\/.+?)(\s|$)/g, function(text, link) {
               return '<a href="'+ link +'" target="blank">'+ link +'</a>';
            }).replace(/(www\..+?)(\s|$)/g, function(text, link) {
               return '<a href="http://'+ link +'" target="blank">'+ link +'</a>';
                })
            );  
        });

但问题是它不是用html替换文本,而是用另一个文本。

例如:

          www.google.com 

变为(仍在文本中):

          <a href="http://www.google.fr" target="blank">www.google.fr</a>

关于如何解决这个问题的任何想法?

4

2 回答 2

4
$(this).text(...)

您正在设置元素的文本

要设置 HTML,请调用.html().

于 2013-01-16T19:55:54.340 回答
1

使用.html()

 $('p').each(function () {
    $(this).html($(this).text().replace(/(http:\/\/.+?)(\s|$)/g, function(text, link) {
               return '<a href="'+ link +'" target="blank">'+ link +'</a>';
            }).replace(/(www\..+?)(\s|$)/g, function(text, link) {
               return '<a href="http://'+ link +'" target="blank">'+ link +'</a>';
                })
            );  
        });

工作演示

于 2013-01-16T20:00:32.337 回答