什么是jQuery的innerHeight()的Dojo等价物?

ini*_*onk 5 dojo

在jQuery中,我们可以使用innerHeight来获取一个元素的高度(包括填充但不是边框).

$("selector").innerHeight();
Run Code Online (Sandbox Code Playgroud)

如何通过dojo获得相同的值?

我的解决方案正在使用什么

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
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法呢?

Sim*_*yer 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
Run Code Online (Sandbox Code Playgroud)

所以,你需要按照你的建议去做。使用dojo.contentBox(),然后分别计算顶部和底部边框宽度。

或者,您可能想将 a 放在 a<div>内部<div>,以便可以在外部 div 上设置边框并保留内部 div 上的填充。然后您就可以通过调用dojo.position()内部 div 来获得所需的高度。

<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>
Run Code Online (Sandbox Code Playgroud)