2017-04-13 79 views
1
var div= document.getElementById('foo'); 
console.log(div); 
console.log(div.scrollHeight); 

當我點擊控制檯中第一個日誌返回的div的DOM時,它的scrollHeight是x,而第二個日誌打印出y。 x!= y,JS返回div的高度不正確

+2

內容仍在加載/渲染? – epascarello

+0

但我在div.scrollheight之前記錄div,在div中它是正確的值。也許它仍然是這樣,如何解決它在純JavaScript/angularjs? – user3761308

+0

如果你只是想得到一個元素的高度,你可以使用「div.clientHeight」,它應該給你。 – garglblarg

回答

0

使用jQuery加載得到一個div的高度。

alert($("divId").height()); 

或JavaScript

var clientHeight = document.getElementById('divId').clientHeight; 

var offsetHeight = document.getElementById('divId').offsetHeight; 
+1

更改'var div = document.getElementById('foo'); console.log(div.scrollHeight);'to'console.log(document.getElementById('foo')。scrollHeight)'輸出正確的值。 – user3761308

1

我可以看到,在這裏我越來越完美了。你可以給你的代碼,你已經嘗試到目前爲止?

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <title></title> 
 

 
</head> 
 
<body> 
 
\t <div id="foo">HELLO WORLD!!!</div> 
 
\t <script type="text/javascript"> 
 

 

 
\t var div= document.getElementById('foo'); 
 
\t console.log(div); 
 
\t console.log(div.scrollHeight); 
 
\t console.log(div.clientHeight); 
 
\t console.log(div.offsetHeight); 
 
\t </script> 
 
</body> 
 
</html>

0

使用.load要等到該元素在DOM

$('#foo').load(function(){ 
    // your code to find height 
    $('#foo').height() 
    });