5

我有许多带有子 div 的容器(class="sidebox"),每个容器都有不同数量的内容。

在某些情况下,我希望每个子 div 的高度都是父 div 的 100%,有时要添加垂直分隔符样式。

为此,我cfull向子 div 和vcon具有“sidebox”类的容器添加了一个类。

然后调用一个jquery函数:

var y = $('.cfull').parent('div.vcon').height();
    $(".cfull").height(y) ;

当只有一个实例并将其子 div 高度设置为边箱的高度时,这是完美的。

如果我sidebox vcon在 html 中添加第二个并给其中一个子 div 附加内容。第二个sidebox子div从sidebox的第一个实例获取高度设置

如何设置class="sidebox vcon"容器 div 中每组子 div 的高度?

我希望这是有道理的。

到目前为止,这是我的工作示例,您会看到第二个边箱的子项具有style="height:#px"来自第一个边箱的

http://bit.ly/jqueryheightissue

4

3 回答 3

6

您正在做的事情称为隐式迭代。当你这样做时:

$('.cfull').height(y);

...您正在做的是将所有.cfull元素设置为只有一个高度值(的当前值y)。

您想显式地遍历每个元素,可能使用.each().

$('.cfull').each(function () {

    var self = $(this),
        container = self.parent('div.vcon');

    self.height(container.height());

});

但是,您应该能够仅使用纯 CSS 来完成您想要实现的目标。你试过做这样的事情吗?

.cfull {
    height : 100%;
}
于 2013-02-07T13:47:58.463 回答
3

您需要遍历所有具有 . 类的元素.cfull。现场示例:http: //jsfiddle.net/QpEgX/5/

$('.cfull').each(function() {
    var y = $(this).parent('div.vcon').height();
    $(this).height(y) ;
});
于 2013-02-07T13:51:36.230 回答
0
var height = 0;
$('.cfull').each(function () {
  height = $(this).parent('div.vcon').height();
  $(this).height(height);
});
于 2013-02-07T13:51:34.873 回答