2012-02-06 38 views
5

在jQuery中,我們可以使用innerHeight來獲取一個元素的高度(包括填充而不是邊框​​)。什麼是jQuery的innerHeight()的Dojo等價物?

$("selector").innerHeight(); 

我怎樣才能得到相同的價值由道場?

什麼我的解決方案是使用

dojo.contentBox() //get the height of content box 
dojo.style(node, "borderTopWidth") //get width of border-top 
dojo.style(node, "borderBottomWidth"). //get width of border-left 

有沒有簡單的方法來做到這一點?

回答

1

不幸的是,我不認爲有一個更簡單的方法來做到這一點。

你基本上有三種選擇:

dojo.contentBox(node) // excludes border, padding and margin 
dojo.position(node) // includes border and padding; excludes margin 
dojo.marginBox(node) // includes border, padding and margin 

所以,你需要做你的建議。使用dojo.contentBox(),然後分別計算頂部和底部邊框寬度。

或者,您可能希望在<div>中放置一個<div>,以便您可以在外部div上設置邊框並在內部div上保留填充。您將可以從內部div調用dojo.position()獲得所需的高度。

<div id="outer" style="border: solid #000 1px;"> 
    <div id="inner" style="height: 20px; padding: 2px;">.</div> 
</div> 
<script> 
    alert(dojo.position("inner").h) // 24 
</script> 
+0

好吧,位置可以得到真正的數據作爲您的解決方案,但我不能改變html的結構。所以裏面的div不存在我的所有屬性都定義爲ourside div(「#外部」),包括填充邊框和blablabla。 – 2012-02-07 14:50:48

相關問題