如何获得svg:g元素的宽度

时间:2012-07-28 16:57:11

标签: javascript jquery svg width

我目前正在使用JavaScript中的svg元素。我是新手。

我的问题是我有一个svg元素,其中我有多个svg:g元素。在我的svg:g元素中,我有各种其他的svg元素。

    <svg>
     <g class="my-class">
      <g class "c1">
         <text style="font-size: 9" x="0" y="-4"> john </text>
         <text style="font-size: 9" x="70" y="-4"> 13 </text>
      </g> 
      <g class="c2">
         <text style="font-size: 9" x="0" y="-4"> john </text>
         <text style="font-size: 9" x="70" y="-4"> 13 </text>
      </g> 
      <g class="c3">
         <text style="font-size: 9" x="0" y="-4"> john </text>
         <text style="font-size: 9" x="70" y="-4"> 13 </text>
      </g> 
    </g>
   </svg>

g动态添加到我的

  

g“my_class”

现在我想将svg宽度设置为g.my_class宽度的宽度。

var svgWidth  =   $('.my-class').width()
alert(svgWidth);

但它给我零。我怎么能在我的浏览器上用黄色工具提示框enter image description here

看到它

当我选择这一行时。

有人可以指导我吗?我这样做是对的,或者我怎样才能做到这一点? 感谢

2 个答案:

答案 0 :(得分:86)

我建议getBBox(这是SVG 1.1的一部分)超过getBoundingClientRect(不是):

$('.my-class')[0].getBBox().width;

演示http://jsfiddle.net/TAck4/

答案 1 :(得分:80)

尝试.getBoundingClientRect

$('.my-class')[0].getBoundingClientRect().width;

演示http://jsfiddle.net/5DA45/

相关问题