将<span>的文本转换为超链接

ox4*_*boy 8 html jquery hyperlink

更新:
答案#3最终工作得最好.我很可能对其他建议做错了; #3可能是最容易实现的.如果您很好奇,我可以在这里找到我尝试过的示例解决方案(暂时):

  1. http://dl.dropbox.com/u/1007716/spanToUrl/test01.html
  2. http://dl.dropbox.com/u/1007716/spanToUrl/test02.html
  3. http://dl.dropbox.com/u/1007716/spanToUrl/test03.html(获奖者)
  4. http://dl.dropbox.com/u/1007716/spanToUrl/test04.html
  5. http://dl.dropbox.com/u/1007716/spanToUrl/test05.html
  6. http://dl.dropbox.com/u/1007716/spanToUrl/test06.html

原始邮件:
我在<span>标签内有一个纯文本网站地址.我想将<span>标记更改为适当的超链接target="_blank"

我已经在这里整理了一个我必须使用的详细示例:http://bit.ly/spantourl

如果你不想点击,我就是这样的:

<span>http://www.domain.com/about</span>
Run Code Online (Sandbox Code Playgroud)

我需要将其改为:

<a href="http://www.domain.com/about" target="_blank">http://www.domain.com/about</a>
Run Code Online (Sandbox Code Playgroud)

Ori*_*Ori 15

试试这个:

$('.sampleClass span').replaceWith(function() {
    var url = $.trim($(this).text());
    return '<a href="' + url + '" target="_blank">' + url + '</a>';
});
Run Code Online (Sandbox Code Playgroud)

有没有必要each,因为replaceWith可以通过多种元素进行迭代,并接受一个函数作为参数.

查看示例HTML,我发现它只是第一个<td>包含URL的.如果确实只有一个,你可以添加first()到选择器链,如下所示:

$('.sampleClass span').first().replaceWith( /* ... */ );
Run Code Online (Sandbox Code Playgroud)

如果它是包含链接的整个,那么您将希望在每个其他匹配项上操作.通过附加:even到您的选择器来执行此操作,如下所示:

$('.sampleClass span:even').first().replaceWith( /* ... */ );
Run Code Online (Sandbox Code Playgroud)

(是的,:even而不是:odd选择1st,3rd和c.元素,因为基于0的索引.)