2016-07-29 29 views
1

我有三個jQuery的對象數組,像這樣:如何獲得映射對象的高度

<div class="object"></div> 
<div class="object"></div> 
<div class="object"></div> 

<script> 
var arr = $('.object'); 
</script> 

而且我想用$.map()找到每個的高度,並將其存儲在一個數組,像這個:

var arrElHeights = $.map(arr, function(a){ 
    return a.height(); 
}); 

我該如何做到這一點?我應該通過另一種方法迭代嗎?

回答

2

你有正確的想法。問題是高度不是一個函數。你想要做的是獲得元素的clientHeight。嘗試是這樣的:

var arrElHeights = $.map(arr, function(a){ 
    return a.clientHeight; 
}); 

這裏是clientHeight一些信息:https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight

,並在文檔上的offsetHeight:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight

jQuery的.height()不包括填充

+0

我想我只是不明白'clientHeight'和'height'之間的完全區別。我目前正在尋找資源,但如果您有任何建議,請將其添加到答案中。 – ExcellentSP

+0

@Shane,請檢查我的答案 –

1

更多詳情

a i您可以嘗試$(a).height()a.clientHeighta.offsetHeight,或甚至a.scrollHeight

clientHeight包括高度和垂直填充。

offsetHeight包括高度,垂直填充和垂直邊框。

scrollHeight包括所包含文檔的高度(在滾動時大於高度),垂直填充和垂直邊框。

我覺得當你包括jQuery時,你應該在你所有的代碼中使用它。