更新:
答案#3最终工作得最好.我很可能对其他建议做错了; #3可能是最容易实现的.如果您很好奇,我可以在这里找到我尝试过的示例解决方案(暂时):
答案#3最终工作得最好.我很可能对其他建议做错了; #3可能是最容易实现的.如果您很好奇,我可以在这里找到我尝试过的示例解决方案(暂时):
> http://dl.dropBox.com/u/1007716/spanToUrl/test01.html
> http://dl.dropBox.com/u/1007716/spanToUrl/test02.html
> http://dl.dropbox.com/u/1007716/spanToUrl/test03.html(获胜者)
> http://dl.dropBox.com/u/1007716/spanToUrl/test04.html
> http://dl.dropBox.com/u/1007716/spanToUrl/test05.html
> http://dl.dropBox.com/u/1007716/spanToUrl/test06.html
原始邮寄:
我在< span>内有一个纯文本网站地址.标签.我想改变那个< span>使用target =“_ blank”标记到适当的超链接
我已经在这里整理了一个我必须使用的详细示例:http://bit.ly/spantourl
如果你不想点击,我就是这样的:
<span>http://www.domain.com/about</span>
我需要将其改为:
<a href="http://www.domain.com/about" target="_blank">http://www.domain.com/about</a>
解决方法
试试这个:
$('.sampleClass span').replaceWith(function() { var url = $.trim($(this).text()); return '<a href="' + url + '" target="_blank">' + url + '</a>'; });
因为replaceWith可以迭代多个元素并且可以将函数作为参数,所以不需要每个元素.
查看您的示例HTML,我发现它只是第一个< td>包含URL.如果确实只有一个,你可以将first()添加到选择器链,如下所示:
$('.sampleClass span').first().replaceWith( /* ... */ );
如果它是包含链接的整个列,那么您将希望在每个其他匹配项上操作.通过追加:甚至到您的选择器来执行此操作,如下所示:
$('.sampleClass span:even').first().replaceWith( /* ... */ );
(是的,:偶数而不是:奇数选择第1,第3和第1个元素,因为基于0的索引.)