将文本转换为jquery的链接

时间:2012-01-06 22:42:35

标签: jquery html

如果我有一个带有一些文字的span元素:

<span>I want this to be a link</span>

有没有办法使用jquery将其从<span>转换为<a>并使用我的链接添加href

2 个答案:

答案 0 :(得分:13)

描述

您可以使用jQuery的replaceWith()方法。

  

replaceWith()用提供的新内容替换匹配元素集中的每个元素。

示例

$("span").replaceWith('<a href="link">link text</a>');

更多信息

答案 1 :(得分:5)

您可以尝试jQuery的replaceWith()使用它的回调函数语法来提取span元素的当前内容并将其放入新的锚元素中。

放入(稍微)通用函数,它看起来像这样:

function replaceWithAnchor(selector,url) {
   $(selector).replaceWith(function() {
     return $("<a></a>").attr("href",url).append($(this).contents());
   });
}

replaceWithAnchor("span", "http://google.com");

这是一个有效的演示:http://jsfiddle.net/cSZGr/1/

(注意:你可能想要一个比“span”更具体的选择器,或者它将取代所有跨度,如我的演示中所示 - 尽管你会注意到单个跨度内容被保留在结果锚元素中。)

当然,如果您不需要通用版本,那么就这样做:

$("span").replaceWith(function() {
  return $("<a></a>").attr("href","http://URL.com").append($(this).contents());
});

在:

<span>I want this to be a link</span>

后:

<a href="http://google.com">I want this to be a link</a>

P.S。另一种方法是使用.wrap() method,它实际上不会替换跨度,它会在范围内添加一个锚元素。如果您的跨度具有您不想丢失的样式或其他内容,这可能会有所帮助。