jQuery 遍历 - offsetParent() 方法

实例

设置类名为 item-a 的 li 元素的最近定位父元素的背景色:

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

定义和用法

offsetParent() 获得被定位的最近祖先元素。

语法

  1. .offsetParent()

详细说明

如果给定一个表示 DOM 元素集合的 jQuery 对象,.offsetParent() 方法允许我们搜索 DOM 树中元素的祖先,并构造一个由最近的定位祖先元素包围的 jQuery 对象。定位元素指的是,元素的 CSS position 属性设置为 relative、absolute 或 fixed。在为表演动画计算偏移或在页面上放置对象时,该信息会很有用处。

请思考带有基本嵌套列表的页面,其中带有定位元素:

  1. <ul class="level-1">
  2. <li class="item-i">I</li>
  3. <li class="item-ii" style="position: relative;">II
  4. <ul class="level-2">
  5. <li class="item-a">A</li>
  6. <li class="item-b">B
  7. <ul class="level-3">
  8. <li class="item-1">1</li>
  9. <li class="item-2">2</li>
  10. <li class="item-3">3</li>
  11. </ul>
  12. </li>
  13. <li class="item-c">C</li>
  14. </ul>
  15. </li>
  16. <li class="item-iii">III</li>
  17. </ul>

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

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

这会改变被定位的项目 II 的背景色。