Подтвердить что ты не робот

Как получить ширину элемента svg: g

В настоящее время я работаю с элементом svg в JavaScript. И я новичок в этом.

Мой вопрос в том, что у меня есть элемент 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

когда я выбираю эту строку.

Может ли кто-нибудь любезно вести меня? Правильно ли я это делаю, или как я могу это достичь? Благодаря

4b9b3361

Ответ 1

Попробуйте .getBoundingClientRect

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

Демо http://jsfiddle.net/5DA45/

Ответ 2

Я бы рекомендовал getBBox (который является частью SVG 1.1) над getBoundingClientRect (а это не так):

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

Демо http://jsfiddle.net/TAck4/