我正在尝试用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>
关于如何解决这个问题的任何想法?
答案 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>';
})
);
});