是否可以在SVG元素中附加div?

时间:2013-07-11 14:16:04

标签: javascript jquery html svg

我正在尝试在SVG中附加一个HTML div,我正在尝试创建一个图形。我试图使用下面的代码附加它,但是当我使用Firebug检查元素时,div显示在rect元素代码中,但它没有显示在图形UI中。

我正在尝试的方法是否有问题,或者无法在SVG中附加div?

    marker.append("rect")
   .attr("width", "50px")
   .attr("height", "50px")
   .append("div")
   .attr("id", function(d) {
      return "canvas_" + d.key.split(" ").join("_");
   })
   .style("width", "50px").style("height", "50px");

3 个答案:

答案 0 :(得分:58)

你不能将HTML附加到SVG(技术上你可以使用foreignObject,但它是一个兔子洞)。此外,SVG中的可见元素不能嵌套,因此circlerectpath等元素不能包含子元素。

答案 1 :(得分:25)

我还会考虑使用<g>元素,因为它通过对对象进行分组来实现与<div>类似的用途。 More about it here

答案 2 :(得分:4)

你试图在同一行中追加“rect”和“div”。可能这是你失败的地方 查看D3的这些tutotials ...它是一个基于SVG的惊人的库 http://alignedleft.com/tutorials/d3/drawing-svgs/