【问题标题】:jquery height() problemjquery height() 问题
【发布时间】:2011-03-17 15:02:45
【问题描述】:

这让我发疯了,有人帮忙,因为我似乎看不出问题出在哪里。

<div id="parent">
   <div id="child"></div>
</div>
<script>
   $('#parent').height(300)

   $('#child').height($('#child').parent().height()-10); //EDITTED LINE
</script>

以上是我需要做的逻辑。 我检查了“#parent”的 html 标签,它说 style="height: 300px;" 但是孩子的值为 -10 :( 应该有 290 ; 我已经检查了 DOM,值是正确的我也尝试了 .css('height') 但没有运气。 有没有人遇到过这种问题?如果有,解决办法是什么:)请让我脱离传教士

抱歉,问题出在“parent().height()”。再次查看脚本(再次抱歉)

【问题讨论】:

标签: jquery height return


【解决方案1】:

.height() 有时会使用附加的“px”来获取它。您必须删除“px”,否则您正在执行'300px' - 10。你可以这样做:

var height = parseInt($('#el').height(),10);

将其转换为数字。

因此,您的代码应更改为:

$('#child').height($('#child').parent().height()-10);

到:

$('#child').height(parseInt($('#child').parent().height(),10)-10);

或者更好的是,在您的代码中添加缓存以使其更快! (您不必重新获取#child。)

var $child = $('#child');
$child.height(parseInt($child.parent().height(),10)-10);

您还忘记了第一行代码中的分号,但这与我无关。

【讨论】:

  • 还是返回值0; &lt;div id="parent" style="position: absolute; left: 0px; top: 0px; width: 1280px; height: 57px;"&gt;&lt;/div&gt; 我的屏幕分辨率是 1280 btw 所以不要被这个数字吓到:)
  • 它适用于 parent().width();返回正确的值。 1280 但高度返回 0 而不是 57 这是预期值
  • @balupton:行尾分号在 JavaScript 中是可选的。
  • 可能存在 CSS 冲突或其他问题。您需要提供一个与问题类似的演示。
  • @casablanca - 仅仅因为有人在编写规范时喝醉了并不意味着您应该省略它们,分号 = 没问题。没有它们 = 额外的调试时间。
【解决方案2】:

尝试为之前创建一个变量

var childheight = $('#parent').height()-10;
$('#child').height(childheight);

【讨论】:

  • 我已经尝试过这个了。如果我为宽度做正确的答案,但不是高度。
【解决方案3】:

为什么不直接设置为 290?

$('#child').height(290);

【讨论】:

  • 这不是答案:因为孩子有一个调整大小和其他会改变它的高度值的东西。加上其他一些并不总是相同的值
猜你喜欢
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 2021-03-17
相关资源
最近更新 更多