2011-01-11 3 views

ответ

2
$('span').html(function(i,txt){ 
    return $('<a>').text(txt).attr({'target':'_blank', 'href': txt }).addClass('link'); 
}); 

demo

, основываясь на комментариях ниже, я думаю, это решает.

$('span').html(function(i,txt){ 
    return replaceURLWithHTMLLinks(txt); 
}); 

function replaceURLWithHTMLLinks(text) { 
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; 
    return text.replace(exp,"<a class='link' href='$1' target='_blank' >$1</a>"); 
} 

updated fiddle

для JQuery 1.3.2, просто изменить коды JQuery немного.

var span = $('span'); 
span.html(replaceURLWithHTMLLinks(span.html())); 

another updated fiddle

1

Попробуйте

$("span").each(function(){ 
    var text = $(this).text(); 
    $(this).contents().wrap("<a class='link' href='" + text + "' target='_blank' />") 
}); 
+0

, но у меня есть не только текст в содержимом html. Он может варьироваться, например, «Проверить эту ссылку http://j.mp/eUcRNK или abcd». –

Смежные вопросы