如何在jquery中将<text>(文本标签)转换为锚标签?

时间:2015-12-02 11:36:55

标签: javascript jquery html anchor

我有一个包含纯文本的<text>标记,但我想显示超链接而不是纯文本。

      <svg width="800" height="600" class="overlay">
<g transform="translate(100,220)">
<path class="link" d="M80,120C120,120 120,106.66666666666666 160,106.66666666666666"></path>
<path class="link" d="M80,120C120,120 120,133.33333333333334 160,133.33333333333334"></path>
<path class="link" d="M80,40C120,40 120,26.666666666666686 160,26.666666666666686"></path>
<path class="link" d="M80,40C120,40 120,53.333333333333314 160,53.333333333333314"></path>
<path class="link" d="M0,80C40,80 40,40 80,40"></path><path class="link" d="M0,80C40,80 40,120 80,120"></path><g class="node" transform="translate(160,133.3333282470703)">
<circle class="nodeCircle" r="8" style="fill: rgb(255, 255, 255);"></circle><text x="13" dy=".35em" class="hyper" text-anchor="start" style="fill-opacity: 1;">Tiger</text>

在上面的代码中,lion以纯文本形式出现,但我想显示一个超链接。

我曾尝试使用.attr(),但它无效。

2 个答案:

答案 0 :(得分:2)

您可以使用replaceWith

&#13;
&#13;
$(function () {
  $("text").each(function () {
    $(this).replaceWith('<a href="">' + $(this).html() + '</a>');
  });
});
&#13;
* {font-family: 'Segoe UI'; margin: 0; padding: 0; list-style: none;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<text x="13" dy=".35em" class="hyper" text-anchor="start" style="fill-opacity: 1;">Lion</text>
&#13;
&#13;
&#13;

我不确定要为href属性添加什么,但如果您需要,可以通过编辑该函数自行添加一些内容。

答案 1 :(得分:0)

使用replacewith

$('text').replaceWith('<a href="http://example.com">link</a>')