jQuery中的offsetParent()没有返回预期的相对位置祖先

时间:2011-03-18 21:22:15

标签: javascript jquery positioning offset

我有一些HTML具有以下近似结构和定位:

<div class="grand-parent" style="position: absolute">
  <div class="parent" style="position: relative">
    <div class="child"></div>
  </div>
</div>

在我的jQuery小部件中,我正在尝试插入位于小部件所针对的元素的“偏移父级”内的元素。为此,我基本上有这样的代码:

var targetElement = $('.child');
$('<div/>').appendTo(targetElement.offsetParent());

不幸的是,该元素似乎是作为.grand-parent的孩子而不是parent插入的。我对offsetParent()(以及文档似乎支持这一点)的理解是offsetParent()应该返回.parent,因为它是相对的。我对offsetParent的理解是不正确的,还是jQuery存在问题(我使用的是1.4.1)。

1 个答案:

答案 0 :(得分:6)

根据https://developer.mozilla.org/en/DOM/element.offsetParentoffsetParent如果未显示父级(display: none),则无法正常工作。在我的例子中,容器元素就是那个。