JQuery获得每个Div元素的高度

时间:2012-01-11 22:48:44

标签: jquery height

我有以下函数来获取具有特定css类的每个div元素的高度。每个容器都有一个由div元素组成的侧按钮。我不能用css设置按钮div的高度,因为它取决于容器div的高度,每个容器可以是不同的高度。所以我必须用jquery来做。我试图根据容器的高度设置按钮的高度,使它们的高度相等。获取容器高度并将按钮高度设置为相等。

你能帮忙吗?谢谢!

// sidebar button
function SideBarBtn(){
    $('.ContactWrap').each(function(){
        var FormHeight = $(this).outerHeight();
        var SideBtnHeight = FormHeight -25 + 'px';
        $('.SideBtn').css('height', SideBtnHeight);
        $('.SideBtn').fadeIn('slow').fadeOut('slow').fadeIn('slow');
    });
}

HTML:

<div class="ContactWrap">
   <a href="#submit" class="SideBtn"> S u b m i t - B a r</a>
   .....
</div>

2 个答案:

答案 0 :(得分:1)

问题是由以下几行造成的:

$('.SideBtn').css('height', SideBtnHeight);
$('.SideBtn').fadeIn('slow').fadeOut('slow').fadeIn('slow');

这些选择器选择带有类SideBtn所有元素,并将新样式应用于它。要解决此问题,您必须使用更具体的选择器。

正确的代码是:

var $btn = $(this).find('.SideBtn');
$btn.css('height', SideBtnHeight);
$btn.fadeIn('slow').fadeOut('slow').fadeIn('slow');

答案 1 :(得分:0)

您使用类.ContactWrap循环遍历元素,但将高度更改和fadeIn,fadeOut,fadeIn应用于具有类.SideBtn的所有元素。因此,每次.each()循环迭代时,它都会调用.css()和每个.SideBtn元素上的淡入淡出函数。这就是为什么高度总是最终成为SideBtnHeight的最后一个值。你实际上得到了所有不同的值,但只有最后一个值。