javascript - 如何使用 jQuery(或需要时的纯 JavaScript)将 <use> 添加到内联 SVG?

标签 javascript jquery svg

我在 HTML5 文档中有一个内联 SVG,我想用 jQuery(如果需要,也可以用纯 JavaScript)添加。

我知道如何添加矩形、圆形或其他形式,但我还不能重用现有的 .

这是对 jsFiddle 的测试:http://jsfiddle.net/nhoizey/uDVbn/

SVG:

<svg width="300" height="300">
  <symbol id="piece"><circle cx="50" cy="50" r="40" fill="green" /></symbol>
  <circle cx="70" cy="90" r="20" stroke="blue" fill="white" />
</svg>

JavaScript:

// it works!
var rect = $(document.createElementNS("http://www.w3.org/2000/svg","rect"))
  .attr({
    x: 10,
    y: 30,
    width: 50,
    height: 70,
    stroke: "red",
    fill: "white"
  });
$("svg").append(rect);

// it doesn't work
var newPiece = $(document.createElementNS("http://www.w3.org/2000/svg","use"))
  .attr({
    "xlink:href": "#piece",
    transform: "translate(100, 100)"
  });
$("svg").append(newPiece);

我知道有一个 jQuery SVG 插件,但希望它尽可能简洁。

最佳答案

添加 href 属性的正确方法是使用 setAttributeNS。

useElement.setAttributeNS("http://www.w3.org/1999/xlink", 'href', '#piece');

关于javascript - 如何使用 jQuery(或需要时的纯 JavaScript)将 <use> 添加到内联 SVG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9032299/

相关文章:

javascript - 如何将对象的嵌套对象转换为对象数组

javascript - 更新气泡图中的数据时如何将圆圈保留在 svg 内

javascript - 如何将javascript字符串格式转换为日期

没有调用 Javascript 函数 onblur

javascript - 使用 CSS 或 JS 的非调整全宽图像

javascript - 在 threejs 中加载到 Material 上的 svg 的每个 <g> 标签上的鼠标事件

javascript - 如何以与 vivus.js 类似的风格制作 SVG 填充和路径动画

javascript - 如何使用 Javascript 提交 2 个表格和 1 个提交? 1 表单使用 "GET"& 其他用途 "POST"

javascript - 使用另一个文件中的 session 变量创建 Json 对象

Javascript 和正则表达式 : split string and keep the separator