Javascript 如何通过js从svg div中获取宽度和高度

Javascript 如何通过js从svg div中获取宽度和高度,javascript,html,svg,Javascript,Html,Svg,html中有一个div,如下所示: <svg id="box" width="312" height="101"></svg> 但是我不能通过el获得宽度和高度,我如何获得它们? 我使用node.js来运行脚本。整个代码是: var jsdom = require('jsdom'), content = '<svg id="box" width="300" height="120"></svg>'; jsdom.env({ features :

html中有一个div,如下所示:

<svg id="box" width="312" height="101"></svg>
但是我不能通过
el
获得宽度和高度,我如何获得它们? 我使用node.js来运行脚本。整个代码是:

var jsdom = require('jsdom'),
content = '<svg id="box" width="300" height="120"></svg>';

jsdom.env({ features : { QuerySelector : true }, html : content,
      done : function(errors, window) {
      var w =  window.document.querySelector('#box').attr("width");
      console.log(w);
     }
});
var jsdom=require('jsdom'),
内容='';
jsdom.env({features:{QuerySelector:true},html:content,
完成:函数(错误,窗口){
var w=window.document.querySelector('#box').attr(“宽度”);
控制台日志(w);
}
});
使用以下内容:

getBoundingClientRect()方法返回 元素及其相对于视口的位置


为什么不试试?@RobertLongson是的,它不行。@dingo\d此代码已在jsdom.env()中使用过。…@RobertLongson类型错误:未定义不是函数。。。如果有问题,请注意在IE8及以下版本中,getBoundingClientRect()返回的DOMRect对象缺少高度和宽度属性。
var jsdom = require('jsdom'),
content = '<svg id="box" width="300" height="120"></svg>';

jsdom.env({ features : { QuerySelector : true }, html : content,
      done : function(errors, window) {
      var w =  window.document.querySelector('#box').attr("width");
      console.log(w);
     }
});
var node = document.getElementById("yourElement");
var rect = node.getBoundingClientRect();

console.log("width:" + rect.width );
console.log("height:" + rect.height);
var myelm = document.getElementById("box").getAttribute('width');