jquery height()问题

时间:2010-07-18 17:00:34

标签: jquery height return

这让我很生气有人帮忙因为我似乎没有看到问题所在。

<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()”。再次查看脚本(再次抱歉)

3 个答案:

答案 0 :(得分:3)

.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);

您还忘记了第一个代码行上的分号,但是我没有关联。

答案 1 :(得分:0)

尝试创建变量befor

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

答案 2 :(得分:-1)

为什么不将它设置为290?

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