2

我正在尝试在其父元素中垂直对齐一系列气泡文本 div。

此嵌套的简化版本如下所示

<div class="bubble">
  <div class="bubble-inner">
  </div>
</div>

<div class="bubble">
  <div class="bubble-inner">
  </div>
</div>

我正在使用这个 jQuery 来获取我的内部元素高度,并且我需要将边距应用于父元素。

$('.bubble').each(function() {
    var rBubbleHeight = $('.bubble > .bubble-inner:first-child').outerHeight();
    var rbh = (405 - rBubbleHeight) / 2;
    $(this).css('margin-top',rbh);
});

问题是我只得到第一个父母的第一个孩子的高度。当我使用这个时,我得到空值。我错过了什么?

4

2 回答 2

2

问题在于,在每次迭代中,您都使用完整的选择器(它将只返回第一个匹配的元素),而不是.bubble单独查看当前元素。

尝试这个:

$('.bubble').each(function() {
    var rBubbleHeight = $(this).find('.bubble-inner:first-child').outerHeight();
    ...
});
于 2013-06-26T14:01:22.977 回答
0

尝试这样的事情:

$('.bubble-inner').each(function() {
    var rbh = (405 - $(this).outerHeight()) / 2;
    $(this).css('margin-top', rbh);
});
于 2013-06-26T14:14:50.593 回答