直接使用原生 JavaScript 或 jQuery 方法获取元素的包含块

Wat*_* v2 5 javascript jquery

是否有内置的 DOM API 或 jquery API 来获取元素的包含块

我不是在问如何获取元素的包含块。我只是问是否已经有了轮子,所以我不必重新发明它。如果没有,我可以这样做:

let containingBlock = $("#five")
                      .parents()
                      .find(parent => parent.css("position") === ...);
Run Code Online (Sandbox Code Playgroud)

对于以下 HTML,例如:

<div id = "one">
    <div id = "two" style = "position: absolute;">
        <div id = "three">
            <div id = "four">
                <div id = "five" style = "position: absolute;"></div>
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

小智 3

您可以使用offsetParent()来获取定位的最近的父元素。根据文档,它在父元素定位absoluterelative或定位时起作用fixed,但它也适用于sticky我的定位。