用html替换文本。 jQuery的

时间:2013-01-16 19:54:22

标签: javascript jquery

我正在尝试用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>

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

2 个答案:

答案 0 :(得分:4)

$(this).text(...)

您正在设置元素的文字

要设置HTML,请致电.html()

答案 1 :(得分: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>';
                })
            );  
        });

Working Demo