2013-01-16 88 views
0

我試圖用html標籤替換文本。我使用此代碼:用html替換文本。 jquery

$('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> 

我如何能解決這事嗎?

+0

您已經創建了一個XSS漏洞。 – SLaks

回答

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

你設置元素的文本

要設置HTML,請致電.html()

+0

非常感謝,它完美的作品! – Marcolac

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