4

我在我的 javascript (coffeescript) 文件中使用以下代码:

myVar = document.querySelector('SVG > a:nth-child(2) > text').offsetWidth

在谷歌浏览器中,这将返回嵌套在 a (anchor) 元素内的文本元素的宽度,该元素嵌套在 svg 元素内,正如预期的那样。在 Firefox 中,这将返回 NULL。我想也许我的选择器语法不符合 Mozilla 的标准,所以我也尝试过,但即使我可以正确选择 DOM 元素(如控制台输出的那样),我也无法检索任何属性 offsetWidth; 它总是会以未定义的形式返回。

现在,以防万一,我的 SVG 对象通过一些 Javascript 动态注入到我的页面中。它直接放置在 div 的主体中并包含在<svg>and</svg>标签中。

是什么赋予了?如何确定这些元素的宽度?

谢谢!

4

1 回答 1

3

NickFitz答案是你需要的。

他提议使用 SVG 的标准功能getBBox()

myVar = document.querySelector (...).getBBox ().width

于 2015-08-03T16:52:13.660 回答