ClientWidth和ClientHeight未定义

时间:2017-03-01 22:48:17

标签: jquery d3.js

我正在尝试为我的svg元素获取clientWidth和clientHeight。根据本教程https://bl.ocks.org/curran/3a68b0c81991e2e94b19,我对此代码进行了更改。

let w = $('.graph');
let clientWidth = w.clientWidth;
let clientHeight = w.clientHeight;
console.log('CW is ' + clientWidth);
console.log('CH is ' + clientHeight);

当我调试时,我有一个clientWidth和clientHeight值。我不确定为什么我得到一个未定义的值。有人可以帮助我为什么会发生这种情况。Dev tools result

3 个答案:

答案 0 :(得分:1)

$('.graph')返回一个jQuery集合,该集合没有clientWidth属性 clientWidth()方法。

我不认为jQuery有一个等同于clientWidthclientHeight的方法。但假设您只有一个图元素,则可以通过使用[0]直接访问DOM节点来获取这些属性:

let w = $('.graph')[0];  //added [0]
let clientWidth = w.clientWidth;
let clientHeight = w.clientHeight;
console.log('CW is ' + clientWidth);
console.log('CH is ' + clientHeight);

答案 1 :(得分:0)

let w = $('.graph');
let clientWidth = w.clientWidth();
let clientHeight = w.clientHeight();
console.log('CW is ' + clientWidth);
console.log('CH is ' + clientHeight);

在函数末尾添加“()”(x.clientWidth(),x.clientHeight())。

答案 2 :(得分:0)

var a={data:'hai',value:'hi'};
function clickMe(){
alert(a.data);
}
function undifined(){
alert(a.hai)
}
<button onClick="clickMe()">click me</button>
<button onClick="undifined()">click Me Undefined</button>