.offsetParent()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

.offsetParent()

分类:偏移 | 遍历 > 树遍历

返回: jQuery

.offsetParent()

描述:返回最接近的有定位的祖先元素。

加入于: 1.2.6
.offsetParent()

该方法不接受任何参数

给定一个jQuery对象,它代表了一个DOM元素的集合,.offsetParent()方法允许我们在DOM树中搜索遍这些元素的祖先元素,并构造一个新的jQuery对象,包裹了最近的有定位的祖先元素。一个元素,如果它的CSS 属性position是relative、absolute或者fixed,它会被称是有定位的。在计算偏移以实际动画,以及在网页上放置对象的时候,这个信息很有用。

设想有个网页,带有基本的嵌套列表,以及一个有定位的元素:

<ul class="level-1">
  <li class="item-i">I</li>
  <li class="item-ii" style="position: relative;">II
    <ul class="level-2">
      <li class="item-a">A</li>
      <li class="item-b">B
        <ul class="level-3">
          <li class="item-1">1</li>
          <li class="item-2">2</li>
          <li class="item-3">3</li>
        </ul>
      </li>
      <li class="item-c">C</li>
    </ul>
  </li>
  <li class="item-iii">III</li>
</ul>

如果从项目A开始,我们可以找到它的有定位的祖先元素:

$( "li.item-a" ).offsetParent().css( "background-color", "red" );

这将改变列表项目II,它是一个有定位的元素。

示例

找出项目A的有定位的父元素。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>offsetParent demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<ul class="level-1">
  <li class="item-i">I</li>
  <li class="item-ii" style="position: relative;">II
    <ul class="level-2">
      <li class="item-a">A</li>
      <li class="item-b">B
        <ul class="level-3">
          <li class="item-1">1</li>
          <li class="item-2">2</li>
          <li class="item-3">3</li>
        </ul>
      </li>
      <li class="item-c">C</li>
    </ul>
  </li>
  <li class="item-iii">III</li>
</ul>
 
<script>$( "li.item-a" ).offsetParent().css( "background-color", "red" );</script>
 
</body>
</html>

演示结果

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/offsetparent.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。