如果我有一个带有一些文字的span元素:
<span>I want this to be a link</span>
有没有办法使用jquery将其从<span>
转换为<a>
并使用我的链接添加href
?
答案 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,它实际上不会替换跨度,它会在范围内添加一个锚元素。如果您的跨度具有您不想丢失的样式或其他内容,这可能会有所帮助。