当尝试在纯JS中获取元素的渲染高度时,element为null

时间:2016-04-08 13:20:45

标签: javascript html css

为什么this代码不起作用?我想(没有JQuery)获取html元素的渲染高度。以下代码:

HTML:

<body id="logo">
</body>

的CSS:

body { 
    background-image: url('https://www.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_284x96dp.png');
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: 100vw auto;
    background-position: -80px 50%; 
}

JS:

var element = document.getElementById(logo).offsetHeight;
console.log(element);

但是这段代码给出了这个错误:

  

VM227:51未捕获的TypeError:无法读取null的属性'offsetHeight'

我做错了什么?

3 个答案:

答案 0 :(得分:0)

你的代码应该更像这样:

document.getElementById('logo')

否则你试图将带有id的元素放入var徽标。

问候

答案 1 :(得分:0)

将您的代码更改为:

var element = document.getElementById("logo").offsetHeight;

答案 2 :(得分:0)

在您的代码中,徽标目前是一个变量。你需要用引号括起来,所以:

document.getElementById("logo")

注意,offsetHeight还为您提供任何填充和边框的高度。